【发布时间】:2020-05-24 21:59:19
【问题描述】:
我确信有更好的方法可以做到这一点,我愿意接受建议。
我有这些向量:
vkt1 <- c("df1", "df2", "df3")
vector2 <- paste("sample", wSheatx, sep="_")
第一个向量包含存储在环境中的数据帧名称列表。这些存储为字符串,但我想将它们称为变量名。 第二个向量只是第一个在开头添加“样本”的向量,相当于:
vector2 <- c('sample_df1', 'sample_df2', 'sample_df3')
来自vector2 的这些字符串将用作要创建的新数据框的名称。
好的,所以现在我想做这样的事情:
for (i in 1:length(vector){ # meaning for i in 1,2,3
vector2[i] = data.frame(which(eval(parse(text = vkt1[i])) == "Some_String", arr.ind=TRUE))
addStyle(wb, vkt1[i], cols = 1:ncol(eval(parse(text = vkt1[i]))), rows = vector2[[i]][,1]+1, style = duppedStyle, gridExpand = TRUE)
}
它可能看起来很复杂,但想法是创建一个数据帧,命名为包含在vector2 中的字符串,当找到“Some_String”时,它是来自vkt1 的数据帧的子集。
然后,使用该创建的数据框并在存在所述字符串时为整行添加样式。
vector2[[i]][,1]+1 旨在部署为sample_df1[,1]+1(在第一次迭代中)
请注意,我使用eval(parse(text = vkt1[i])) 从vkt1 的字符串中获取变量。所以,比如说,eval(parse(text = vkt1[1])) 等于 df1(数据帧,而不是字符串)
这样,代码给出如下错误:
In file(filename, "r") :
cannot open file 'noCoinColor_Concat': No such file or directory
一直试图让它像这样工作,但我开始觉得这种方法可能非常错误。
【问题讨论】: