R加入tolower

冬天的人

我有一些样本数据

data1 = data.frame(name = c("cat", "dog", "parrot"), freq = c(1,2,3))
data2 = data.frame(name = c("Cat", "snake", "Dog", freq2 = c(2,3,4)))
data1$name = as.character(data1$name)
data2$name = as.character(data2$name)

我想加入,但是例如“ cat”和“ Cat”应被视为相同的值。我想到了先使用tolower来确定出现在两个数据框中的条目

in_both = data1[(tolower(data1$name) %in% tolower(data2$name)),]

然后,我想加入data2,但由于名称不匹配而无法正常工作。

library(dplyr)
left_join(in_both, data2)

有没有一种使用方式加入tolower

提夫

如果您不想更改原始data2文档(如@AshofFire建议的那样),可以对name管道中的值进行大写转换,%>%然后执行联接操作:

data2 %>%
  mutate(name = str_to_lower(name)) %>%
  inner_join(data1, by = "name") 

  name freq2 freq
1  cat     2    1
2  dog     4    2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章