![](/img/trans.png)
[英]How to combine different columns of characters from the same data frame in R
[英]Comparing elements from different columns but from the same data frame with R
我正在尝试确定序列相似性。 我想创建一个函数来比较df
元素,例如:
V1 V2 V3 V4
1 C D A D
2 A A S E
3 V T T V
4 A T S S
5 C D R Y
6 C A D V
7 V T E T
8 A T A A
9 R V V W
10 W R D D
我想将第一列中的第一个元素与第二列中的第一个元素进行比较。 如果匹配 == 1,否则为 0。然后将第一列中的第二个元素与第二列中的第二个元素进行比较。 等等。
例如:
C != D -----0
A == A -----1
这样我想将第 1 列与第 2 列进行比较,然后将第 3 列和第 4 列进行比较。然后将第 2 列与第 3 列和第 4 列进行比较。然后将第 3 列与第 4 列进行比较。
输出将只是数字:
0
1
0
0
0
0
0
0
0
0
我尝试了以下但它不起作用:
compared_df <- ifelse(df_trial$V1==df_trial$V2,1,ifelse(df_trial$V1==df_trial$V2,0,NA))
compared_df
按照建议,我尝试了以下操作:
compared_df1 <- df_trial$matches <- as.integer(df_trial$V1 == df_trial$V2)
这适用于小样本比较。 有没有办法在全球范围内进行更多比较? 喜欢更新的列。
正如@Ronak Shah 在评论中所说,在您想要比较 2 个值的情况下,使用以下内容就足够了:
df$matches <- as.integer(df$V1 == df$V2)
另一个适用于更多 2 行的选项是使用apply
以下列方式检查一行中唯一元素的数量:
df$matches = apply(df, 1, function(x) as.integer(length(unique(x)) == 1))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.