我中的R 2个dataframes:如何将一个R数据帧与另一个R数据帧的值进行子集化?
Died.At <- c(22,40,72,41, ...)
Writer.At <- c(16, 18, 36, 36)
Name <- c("John Doe", "Edgar Poe", "Walt Whitman", "Jane Austen", ...)
Gender <- c("MALE", "MALE", "MALE", "FEMALE", ...)
Date.Of.Death <- c("2015-05-10", "1849-10-07", "1892-03-26","1817-07-18", ...)
Pet <- c("cat", "dog", "cat", "cat")
df1 = data.frame(Died.At, Writer.At, Name, Gender, Pet)
print(df1)
Died.At Writer.At Name Gender Pet
1 22 16 John Doe MALE cat
2 40 18 Edgar Poe MALE dog
3 72 36 Walt Whitman MALE cat
4 41 36 Jane Austen FEMALE cat
.....
在df1
不每一行Name
是唯一的(即,有多个行具有相同的作者。)
第二数据帧df2
,也有一个列Name
,两位作者来自df1
(例如Jane Austen)和全新的作者。这个数据帧也大得多。
print(length(unique(df1$Name)))
## output 1168
print(length(unique(df2$Name)))
## output 5572
我想子集df2
使得只有名称是从df1
名称。
我的想法是这样:
subset_df2 = df2[df2$Name == unique(df1$Name)]
不过,我希望那里是1168个唯一的作者姓名在这里:
print(length(unique(subset_df2$Name)))
## output 880
这是不到我所期待的。我的错误在哪里?
此语句中存在不一致”列名中的每个值都是唯一的,但在df1中,每行都不是唯一的(即有多行具有相同的作者)。“如果df1中的每一行都不是唯一的,并且某些行具有相同的作者,那么当名称构造df1时,Name是如何唯一的。同样在你的代码中你有First.Name和Second.Name,但它们不出现在df1中? – Djork
@ R.S。我编辑了上述---谢谢。 – ShanZhengYang
'subset_df2 < - 子集(df2,%df1 $ Name中的名称%)' – jdobres