繁体   English   中英

将来自不同列但来自同一数据框的元素与 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM