我试图创建一个从1到14的循环。此循环中的每个整数都将添加到新创建的数据帧名称的末尾。然后,它应该根据数字和文本的串联搜索现有数据框中的列。我已经搜索了几个小时但找不到解决方案。
我的意思是:
while (i <= 14) {
"newDF" + i <- oldDf %>%
filter(str_detect(ColumnName, "TEXT" + i)
}
新数据框应如下所示:
newDF1,newDF2 ... newDF14
它们应该基于连接字符串(text + i)创建:
的text1,text2..text14
我的第一个挑战是根据文本和 i 的串联创建一个新的数据框。我尝试过使用str_c命令和str_glue命令,但收到以下错误信息。
Error in str_c("newDF", i)) <- oldDF:
target of assignment expands to non-language object
Error in str_glue("newDF{i}") <- oldDF:
target of assignment expands to non-language object
答案 0 :(得分:0)
上面的代码的主要问题在于,赋值运算符的左侧无法进行任何操作。
for (i in 1:14){
assign(str_glue("newDF{i}"), oldDF %>%
filter(str_detect(ColumnName, str_glue("TEXT{i}"))))
}
因此,从技术上讲,即使我觉得有更好的方法可以执行此操作,无论是使用嵌套列表还是使用散布和收集。我会说更多,但我没有足够的背景来解决问题。