R 如何将两个相同的数据帧组合在一起,并替换一列中的值?
我这里有一个简单的概念问题,需要一些帮助 这是我的密码:R 如何将两个相同的数据帧组合在一起,并替换一列中的值?,r,R,我这里有一个简单的概念问题,需要一些帮助 这是我的密码: Rank <- c(1,2,3,4,5) ID <- c("Jack", "Tom", "Chloe", "Mary", "Max") df <- data.frame(ID, Rank) rankrange <- subset(df, Rank >2) for (i in 1:nrow(rankrange)){ #revaluing numbers 3,4,5 with NA rankrange[
Rank <- c(1,2,3,4,5)
ID <- c("Jack", "Tom", "Chloe", "Mary", "Max")
df <- data.frame(ID, Rank)
rankrange <- subset(df, Rank >2)
for (i in 1:nrow(rankrange)){ #revaluing numbers 3,4,5 with NA
rankrange[i,2] <- "NA"
}
ID Rank
3 Chloe NA
4 Mary NA
5 Max NA
我想这可以用一个函数来实现,但我不知道是哪一个!谢谢
编辑
我试图理解当我有两个相同的数据帧,但一列的值有变化时会发生什么。我可以使用什么函数将这两个数据帧组合在一起,以便替换值 您到底希望得到什么仍然有点不清楚,但这里有一个适合您的数据的示例:
rbind(
df[!df$ID %in% rankrange$ID, ],
rankrange
)
ID Rank
1 Jack 1
2 Tom 2
3 Chloe NA
4 Mary NA
5 Max NA
这就是你要找的吗
df$Rank <- ifelse(df$Rank > 2, NA, df$Rank)
ID Rank
1 Jack 1
2 Tom 2
3 Chloe NA
4 Mary NA
5 Max NA
df$Rank 2,NA,df$Rank)
身份等级
1杰克1
汤姆2
克洛伊·娜
玛丽娜
5最大NA
你不需要循环df$Rank[df$Rank>2]你好,我知道你的方法很有效。我只是好奇我有两个数据帧的情况,并希望将它们与值替换结合在一起!上面我给出的例子是我试图实现的一个简化版本Hi snoram、rbind将只按行组合,给我Chloe、Mary和Max的重复条目。如果有两个data.frames,请使用match
或merge
当有一个公共列时,顺便说一句,您正在创建一个stirng“NA”而不仅仅是做作业rankrange$Rank
df$Rank <- ifelse(df$Rank > 2, NA, df$Rank)
ID Rank
1 Jack 1
2 Tom 2
3 Chloe NA
4 Mary NA
5 Max NA