我的数据框很少
DF1 DF2 DF3 DF4
A 1 A 2 A 1 A 1
B 2 B 2 B 2 B 2
C 3 C 3 C 4 C 3
D 2 D 4 D 3 D 4
E 4 E 1 E 2 E 3
F 2 F 2 F 2 F 2
G 3 G 1 G 4 G 3
此处,数字表示组(具有相同编号的字母在同一组中)。与DF1类似,(B,D,F)有2个,因此它们属于同一组。
我想弄清楚所有数据帧中哪些组可用(如(B,F)在所有数据帧中都在同一组中。同样,(C,G)在2个数据帧的同一组中。 因此,我希望在所有数据框中可以获得哪个组(可以超过2个成员),如果它们始终不可用,则它们在同一组中的次数。 R和Python代码更可取。
答案 0 :(得分:0)
这应该有用,总列列出了特定字母在数据框中显示的次数。
df <- data.frame(grp = LETTERS[1:7],
df1 = c(1,2,3,2,4,2,3),
df2 = c(2,2,3,4,1,2,1),
df3 = c(1,2,4,3,2,2,4),
df4 = c(1,2,3,4,3,2,3))
# Create a new column which counts the maximum number of times the letter
# has the same group in each dataset.
df$total <- apply(df[, 2:ncol(df)], 1, function(row) max(table(row)))
grp df1 df2 df3 df4 total
1 A 1 2 1 1 3
2 B 2 2 2 2 4
3 C 3 3 4 3 3
4 D 2 4 3 4 2
5 E 4 1 2 3 1
6 F 2 2 2 2 4
7 G 3 1 4 3 2
# Show the rows for which the letters are present in the same group
# across all datasets.
df[df$total == ncol(df)-2,]
grp df1 df2 df3 df4 total
2 B 2 2 2 2 4
6 F 2 2 2 2 4