如何在每隔一行(奇数)中取值并将它们移动到每一行(偶数和奇数)或将它们切换到其他行(偶数)?
How to take values in every other row (odd) and shift them to be in every row (even and odd) or switch them to other rows (even)?
如何将每隔一行(奇数)的值移动到每一行(偶数和奇数)或将它们切换到其他行(偶数)?在数据框中,我每隔一行都有值。我希望它们出现在该列的每一行中。我如何实现这一目标?另一种解决方案是将它们切换为偶数,而不是奇数。
当前外观示例:
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"
如果我没理解错的话,请创建一个 select 包含您想要的值的索引
> idx = seq(2, nrow(output), by = 2)
并使用 idx - 1
到 select 要替换的行
> 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)
row_odd <- seq_len(nrow(output)) %% 2
output[row_odd == 1, 1] <- data_row_even
output[row_odd == 0, 1] <- NA
如何将每隔一行(奇数)的值移动到每一行(偶数和奇数)或将它们切换到其他行(偶数)?在数据框中,我每隔一行都有值。我希望它们出现在该列的每一行中。我如何实现这一目标?另一种解决方案是将它们切换为偶数,而不是奇数。
当前外观示例:
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"
如果我没理解错的话,请创建一个 select 包含您想要的值的索引
> idx = seq(2, nrow(output), by = 2)
并使用 idx - 1
到 select 要替换的行
> 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)
row_odd <- seq_len(nrow(output)) %% 2
output[row_odd == 1, 1] <- data_row_even
output[row_odd == 0, 1] <- NA