我想創建一個項目列表,然後在列表中一次移動一個項目,以替換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"]
我想創建一個項目列表,然後在列表中一次移動一個項目,以替換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"]
你可以簡單地解決迭代值的列表,並使用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
正如顯示,你可以使用變量A
,B
,C
。
也許你想使用一個列表。看到[這個問題]格雷戈爾的帖子(http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)瞭解更多。 – lmo