在R脚本中替换重复的文本

时间:2017-01-05 18:36:43

标签: r

我想创建一个项目列表,然后一次在列表中移动一个项目来替换我的R脚本部分中的一个单词,该单词将引用各种对象以便简单。

例如,我从这开始:

A <- mydata[1:48, "A"]
B <- mydata[1:48, "B"]
C <- mydata[1:48, "C"]

我想简化所以它是一行脚本但是运行x = A,x = B和x = C的值,其中x命名一个对象(没有“”)但是也调用一个列(在里面) “)。

x <- mydata[1:48, "x"]

1 个答案:

答案 0 :(得分:0)

您可以简单地迭代值列表并使用assign函数(为环境中的名称赋值)来解决问题。

试试这个可重现的代码:

> set.seed(123)
> my_data <- as.data.frame(matrix(rnorm(3*50), nrow=50, ncol=3))
> values_list <- c("A","B","C")
> colnames(my_data) <- values_list
> 
> for (v in values_list) {
+   assign(v,  my_data[1:48, v])
+ }
> A
 [1] -0.56047565 -0.23017749  1.55870831  0.07050839  0.12928774
 [6]  1.71506499  0.46091621 -1.26506123 -0.68685285 -0.44566197
[11]  1.22408180  0.35981383  0.40077145  0.11068272 -0.55584113
[16]  1.78691314  0.49785048 -1.96661716  0.70135590 -0.47279141
[21] -1.06782371 -0.21797491 -1.02600445 -0.72889123 -0.62503927
[26] -1.68669331  0.83778704  0.15337312 -1.13813694  1.25381492
[31]  0.42646422 -0.29507148  0.89512566  0.87813349  0.82158108
[36]  0.68864025  0.55391765 -0.06191171 -0.30596266 -0.38047100
[41] -0.69470698 -0.20791728 -1.26539635  2.16895597  1.20796200
[46] -1.12310858 -0.40288484 -0.46665535

如图所示,您可以使用变量ABC