【发布时间】:2020-01-19 16:58:57
【问题描述】:
不得不记账,因为这个 for 循环序列已经让我烦恼了很长一段时间。
我在 R 中有一个数据框,有 1000 行和 10 列,每个值的范围为 1:3。我想重新编码每个条目,以便:1==3、2==2、3==1。我知道有更简单的方法可以做到这一点,例如对每一列进行子设置和对条件进行硬编码,但这并不总是理想的,因为我使用的许多数据集最多有 100 列。
我想使用嵌套循环来完成这项任务——这就是我目前所拥有的:
for(i in 1:nrow(dat_trans)){
for(j in length(dat_trans)){
if(dat_trans[i,j] == 1){
dat_trans[i,j] <- 3
} else if(dat_trans[i,j] == 2){
dat_trans[i,j] <- 2
} else{
dat_trans[i,j] <- 1
}
}
}
所以我遍历第一列,获取每个值并根据 if/else 的条件更改它,我仍在学习 R,所以如果您在我的代码中有任何指针,请随时指出。
编辑:代码
【问题讨论】:
-
如果值已经是
2,为什么要换成2? -
我想我可以使用跳过/使用它来做其他事情。
标签: r loops if-statement