r - 从 R 中的 data.table 中的值替换数据框中的所有值
问题描述
我对 R 相当陌生,并且正在尝试替换我的 data.frame 中的值,这些值从名为df
的 data.table 中的相应值命名dtb
。我的 data.table 只是我的 data.frame 中所有唯一值的计数,如下所示:
df
fruits
1 apple
2 pear
3 banana
4 apple
5 banana
dtb
fruits N
1 apple 2
2 pear 1
3 banana 2
我希望用基于名称的计数替换我的原始 data.frame 值。输出看起来像这样:
df
fruits
1 2
2 1
3 2
4 2
5 2
我试图查看观察结果并检查它是否在数据表的水果列中,但我正在苦苦挣扎。有人可以在这里帮助我吗?谢谢
解决方案
您可以使用包中的join()
函数,dplyr
然后选择并重命名新列:
# 1. join by "fruits" column, i.e. create a new corresponding N column
# 2. select only column N and rename it to "fruits"
df %>%
left_join(dtb, by = "fruits") %>%
select(fruits = N)
#> fruits
#> 1 2
#> 2 1
#> 3 2
#> 4 2
#> 5 2
由reprex 包(v0.3.0)于 2020 年 7 月 24 日创建
数据
df <- structure(list(fruits = c("apple", "pear", "banana", "apple",
"banana")), class = "data.frame", row.names = c("1", "2", "3",
"4", "5"))
dtb <- structure(list(fruits = c("apple", "pear", "banana"), N = c(2L,
1L, 2L)), row.names = c(NA, -3L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x0000021f51801ef0>)
推荐阅读
- python - SyntaxError:无效的语法?评估()
- c++ - 使用结构读写二进制文件
- google-app-maker - 超出条件行颜色和最大调用堆栈大小
- spring-boot - Kotlin Spring Reactive Webflux - 处理 WebClient 错误
- html - 用背景图像创建两个有角度的 div 的最佳方法?
- reactjs - 渲染大量项目会阻止其他功能在渲染完成之前工作
- r - 如何将新数据分配给R中变量内的变量
- php - 在 laravel 中保留当前选项卡视图页码
- python-3.x - 即使直接从 Chrome 检查中复制,XPath 也不起作用
- go - 为什么这个版本标签会导致错误?