【发布时间】:2021-04-18 02:03:32
【问题描述】:
我试图让 R 逐列读取并评估来自两个相邻单元格的值是否相等。如果值相等,我希望 R 将这种情况计算在一个新变量中。这是示例数据(df):
| Var1 | Var2 | Var3 |
|---|---|---|
| 2 | 3 | 3 |
| 3 | 3 | 3 |
| 1 | 2 | 3 |
| 3 | 2 | 1 |
...我想去这里:
| Var1 | Var2 | Var3 | NewVar |
|---|---|---|---|
| 2 | 3 | 3 | 1 |
| 3 | 3 | 3 | 2 |
| 1 | 2 | 3 | 0 |
| 3 | 2 | 1 | 0 |
我尝试过的一组示例代码如下:
df$NewVar <- 0
for (i in 1:2){
if (df[i]==df[i+1]){
df$NewVar <- df$NewVar + 1
}
else{
df$NewVar <- df$NewVar
}
}
这组特定的代码只是在 NewVar 变量中返回 0。
任何形式的帮助将不胜感激!
【问题讨论】:
-
你们俩都应该知道 df[1] 和 df[,1] 是一样的。
-
@DavidB。 if 函数无法处理列。而且您的代码不会应用基于行的测试和计算。看看 ifelse()。
标签: r for-loop if-statement apply