我发现我的数据框“ Data”中的行的第一个元素通常等于第二个元素。我想用NA替换此第一元素,并保留第二元素。
我的数据框'Data'具有3列c1,c2和c3,像这样
c1 c2 c3
1 1 4
5 2 9
3 1 8
7 7 2
9 9 1
我试图运行此代码
for (i in 1:length(Data)) {
Data[i,1]<- if (Data[i,1]==Data[i,2]) NA else Data[i,1]
}
但是它不起作用。我想使用Data [i; 1]代替Data $ c1 [i],因为我使用merge()循环来重新创建我的数据框,并且每次重新创建数据框时列的名称都会更改。
我想用NA替换c1列中与c2列相同行中重复的任何值,像这样
c1 c2 c3
NA 1 4
5 2 9
3 1 8
NA 7 2
NA 9 1
可以帮我吗?非常感谢。
答案 0 :(得分:5)
您可以这样做:
sum
答案 1 :(得分:2)
使用dplyr
:
df %>%
mutate(c1=ifelse(c1==c2,NA,c1))
c1 c2 c3
1 NA 1 4
2 5 2 9
3 3 1 8
4 NA 7 2
5 NA 9 1