您如何在每隔一行(奇數)中取值并將它們移動到每一行(偶數和奇數)或將它們切換到其他行(偶數)?在資料框中,我每隔一行都有值。我希望它們在列的每一行中。我如何實作這一目標?另一種解決方案是切換它們,使它們只是偶數,而不是奇數。
它目前的樣子示例:
set.seed(5)
output<-data.frame(matrix("", nrow=500, ncol=1))
for(i in 1:nrow(output)){
if(i %% 2 == 0){
output[i,1] <- sample(c("A","B","C"),1,replace = T)
}
}
colnames(output) <- "work"
我希望它顯示為:
set.seed(5)
output<-data.frame(matrix("", nrow=500, ncol=1))
for(i in 1:nrow(output)){
output[i,1] <- sample(c("A","B","C"),1,replace = T)
}
colnames(output) <- "work"
uj5u.com熱心網友回復:
row_odd <- seq_len(nrow(output)) %% 2
output[row_odd == 1, 1] <- data_row_even
output[row_odd == 0, 1] <- NA
uj5u.com熱心網友回復:
如果我理解正確,請創建一個索引來選擇您想要的值
> idx = seq(2, nrow(output), by = 2)
并用于idx - 1選擇要替換的行
> output[idx - 1, "work"] = output[idx, "work"]
> head(output)
work
1 B
2 B
3 C
4 C
5 A
6 A
如果行數為奇數,您希望最后一行發生什么還不是很清楚?
請注意,生成原始資料的更有效的 / R 方法可能是
df = data.frame(work = character(500))
idx = seq(2, nrow(df), by = 2)
df[idx, "work"] = sample(c("A", "B", "C"), length(idx), replace = TRUE)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/347577.html
