【发布时间】:2020-10-19 04:21:38
【问题描述】:
我正在尝试确定序列相似性。
我想创建一个函数来比较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)
这适用于小样本比较。有没有办法在全球范围内进行更多比较?就像更新的列一样。
【问题讨论】:
-
那就是
df$matches <- as.integer(df$V1 == df$V2)。