r - 在列表的每个数据框中创建新列,并根据位置(R)从字符向量中填充字符串
问题描述
我有一个数据框列表和一个带有字符串的字符向量。数据帧的数量和字符串的数量chr
是相同的。
我想用字符向量中相应位置的字符串填充列表中每个数据帧中的特定列
dfs<-list(mtcars[,1:4], iris[,1:4])
dfs <- lapply(dfs, function(x) transform(x, mycol=""))
z <- c("red", "blue")
作为我想要的最终输出
dfs[[1]]$mycol
填充red
和
dfs[[2]]$mycol
填充blue
从概念上讲,我认为我需要做这样的事情:
dfs <- lapply(dfs, function(n) dfs[[n]]$mycol <- z[n])
,但我得到了错误
z[n] 中的错误:无效的下标类型“列表”
真实数据是 97 个元素的列表
解决方案
您也可以尝试直接mycol
使用mapply()
:
#Data
dfs<-list(mtcars[,1:4], iris[,1:4])
z <- c("red", "blue")
#Code
L <- mapply(function(x,y) {x$mycol<-y;return(x)},x=dfs,y=z,SIMPLIFY = F)
推荐阅读
- javascript - 传递变量而不是硬编码值时JavaScript函数不起作用
- android - 当我尝试为我正在通过 Unity 开发的游戏构建 apk 文件时,Android SDK 未正确安装错误?
- gcc - 如何以及何时在 AArch64 上使用 -mbig-endian gcc 选项?
- amazon-web-services - `aws 记录 list-tags-log-group` 时出错
- python - 使用 Python 在两台计算机之间发送数字
- java - 使用 JSP 和 POM 中的自定义父集从 Spring Boot MVC 项目中创建一个可执行的 jar 服务内容
- android - Google Places API + ReactNative
- google-bigquery - 如何在 bigQuery 中查询特定产品的每日费用?
- bash - 提取/剪切字符串匹配的行
- algorithm - 给定时间的路线规划器