我有df1:
City Freq
Seattle 20
San Jose 10
SEATTLE 5
SAN JOSE 15
Miami 12
我使用table(df)
我有另一个df2:
City
San Jose
Miami
如果df1中的城市值等于df2中的城市值,我想要子集df1。这个df2只是一个样本,所以我不能使用OR条件(" |")因为我有很多不同的标准。也许我可以将这个df2转换为矢量..但我不知道该怎么做。 as.vector()似乎不起作用。
我考虑过使用
subset(df1, City == df2)
但这给了我错误。
另外,如果你们能让我找到一种方法让这个案例不敏感,那么#34; San Jose"和#34;圣何塞"加在一起,这会更好!
如果我使用" toupper / tolower",我收到错误:invalid multibyte
提前致谢!!
答案 0 :(得分:0)
以下是更多方法
# Method 1: using dplyr package
library(dplyr)
filter(df1, tolower(df1$City) %in% tolower(df2$City))
df1 %>% filter(tolower(df1$City) %in% tolower(df2$City))
# Method 2: using which function
df1[ which( tolower(df1$City) %in% tolower(df2$City)) , ]
# Method 3:
df1[(tolower(df1$City) %in% tolower(df2$City)), ]
City Freq
2 San Jose 10
4 SAN JOSE 15
5 Miami 12
希望这有帮助。