r - 在 R 中结合 For 和 If 循环
问题描述
只有存在该变量名时,我才希望在 R 中合并表。同样,我用可能存在或不存在的各种表名创建了一个变量。然后添加了一个“for”和“if”循环来组合表格。所有表(如果存在)都有一个共同的“名称”列。我输入的代码如下:
Designation.Attrition1<- data.frame(names)
x<- c("despivot2020new", "despivot2019new", "despivot2018new", "despivot2017new")
for( i in 1: length(x)){if (exists(x[i])){Designation.Attrition1<- merge(Designation.Attrition1, x[i] , by = "names")}}
但是,我收到的错误是“fix.by(by.y, y) 中的错误:'by' 必须指定一个唯一有效的列”。
错误的原因之一,可能是合并函数未能将 x 的元素视为变量名。
解决方案
x[i]
仍然是字符串而不是数据框。get
在合并之前先尝试数据。
for( i in seq_along(x)) {
if (exists(x[i])) {
Designation.Attrition1 <- merge(Designation.Attrition1,get(x[i]),by = 'names')
}
})
推荐阅读
- c - 如何在 C 中使用 exec argv 传递指针?
- android - 如何在 Android 中使用 Groupie 在 Recyclerview 中实现 HeaderItems
- excel - 在工作簿中移动形状
- c++ - 如何将命名空间中的函数作为非命名空间参数传递?
- cassandra - 即使在查询中提及所有分区键后,Cassandra 仍要求允许过滤?
- laravel - 将文件夹文件复制到另一个文件夹
- swift - 使用分段控件快速隐藏元素
- app-inventor - 如何在 App Inventor 中实现渐进式加载?
- spring - Spring Boot 向登录过滤器注入 Rest 模板
- flutter - Flutter Build Tiles onTap 显示错误“未定义名称‘上下文’”