r - 将第三列添加到数据框列表 R tidyverse
问题描述
我有一个数据框,其中最后一列(“数据”)由一个数据框列表组成,每个数据框都有一个“年份”和一个“产量”列。我想向列中的每个数据框添加第三列“Det_Yield”。我想知道如何以“tidyverse”的方式做到这一点。
我已经使用循环完成了它,就像这样,但我想知道如何使用 map 或其他一些整洁的方法来做到这一点。谢谢你。
for (cty in 1:66){
corn_by_county[[3]][[cty]]$Det_Yield <- NA
yield_model <- lm(corn_by_county[[3]][[cty]]$Yield ~ corn_by_county[[3]][[cty]]$Year)
corn_by_county[[3]][[cty]]$Det_Yield <- resid(yield_model)}
解决方案
您可以通过map
以下方式使用。
library(dplyr)
library(purrr)
viewOutput <- df %>%
mutate(data = map(data, ~ mutate(.x, det_yield = 'whatever')))
viewOutput$data
# [[1]]
# A tibble: 2 x 3
# year yield det_yield
# <dbl> <dbl> <chr>
# 1 1999 5 whatever
# 2 2000 6 whatever
# [[2]]
# A tibble: 2 x 3
# year yield det_yield
# <dbl> <dbl> <chr>
# 1 2001 7 whatever
# 2 2002 8 whatever
任意演示数据
df <- structure(list(data = list(structure(list(year = c(1999, 2000
), yield = c(5, 6)), row.names = c(NA, -2L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(year = c(2001, 2002), yield = c(7,
8)), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"
)))), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"
))
推荐阅读
- c++ - 如何声明要在 C++ Qt 中的函数中使用的变量?
- excel - 如何复制模板,用另一个工作表中的数据填充它,并从另一个工作表中的范围重命名它而不创建模板(2)?
- angular - 如何按字母顺序将节点插入离子列表
- php - 如何使用 php 从标签后出现的文本文件中读取特定行
- java - JPQL:使用复合键建模的具有多对多关系的查询实体
- python - Python中“重命名文件”的单元测试
- eclipse - Eclipse 无法从 Facelets 中的 AbstractBean/AbstractEntity 中看到 Beans 模型的字段之外
- reactjs - ReactJS - '@material-ui/icons/Fastfood' 不工作
- flutter - 如何使用 GlobalMaterialLocalizations 中的本地化字符串?
- opengl - OpenGL:计算着色器工作组是否并行执行?