我认为此问题之前没有问过这个问题。我在数据帧中有两列1和0。我们分别称这些列为X和Y.在对任何行的X和Y进行比较时,显然可能有四种组合之一:
想象一下,数据框总共有 m 列,但我们只对X和Y感兴趣。我想编写一个只比较X和Y的函数,然后用特征组合来表征特定的组合。新列中相应的标签A,B,C或D(我们称之为Z)。
所以说数据看起来像:
该功能将输出:
我想这可能是微不足道的,但我是R新手。谢谢你的指导!
答案 0 :(得分:1)
我们创建一个键/值组合唯一数据集,然后merge
创建基于'X'和'Y'列的输入数据集
merge(df1, KeyDat, by = c("X", "Y"), all.x=TRUE)
# X Y Z
#1 0 0 D
#2 0 1 B
#3 1 1 C
#4 1 1 C
或者要以相同的顺序获取输出,请使用left_join
library(dplyr)
left_join(df1, keyDat)
#Joining by: c("X", "Y")
# X Y Z
#1 1 1 C
#2 0 1 B
#3 0 0 D
#4 1 1 C
keyDat <- data.frame(X= c(1, 0, 1, 0), Y = c(0, 1, 1,
0), Z = c("A", "B", "C", "D"), stringsAsFactors=FALSE)
df1 <- data.frame(X= c(1, 0, 0, 1), Y=c(1, 1, 0, 1))