我有以下資料:幾組不同大小的資料,例如,
a1 <- runif(2)
a2 <- runif(3)
a3 <- runif(2)
b1 <- runif(4)
c1 <- runif(6)
c2 <- runif(8)
a <- c("a1", "a2", "a3")
b <- c("b1")
c <- c("c1", "c2")
vars <- c("a", "b", "c")
我想列印變數的每個值(并做其他事情)。
for (i in vars){
for (j in i){
print(j)
}
}
我的問題是,在 vars 的回圈中,我只得到變數的名稱,但我無法訪問它們。
我也嘗試過 *apply(.)
sapply(vars, function(df) {
print(df)
})
和地圖(。)
vars %>%
map(~ print(.))
我仍然只得到變數的名稱,而不是內容。
一種可能的方法是用相應的向量替換 vars 中的變數,即
vars2 <- vars %>% [something]
vars2
[1] "a1" "a2" "a3" "b1" "c1" "c2"
然后回圈遍歷 vars2。
感謝您的幫助!
uj5u.com熱心網友回復:
當get()引數為物件名稱時,函式將回傳物件。
所以:
for (i in vars){
for (j in get(i)){
print(get(j))
}
}
[1] 0.9936563 0.5921018
[1] 0.326851258 0.669632069 0.009228891
[1] 0.6428064 0.1019502
[1] 0.8501049 0.7520931 0.3428727 0.3318866
[1] 0.7850959 0.3322788 0.5309424 0.8743996 0.7330708 0.1912109
[1] 0.1338074 0.6304955 0.7746226 0.3737855 0.2318912 0.3701741 0.4098900 0.6035598
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/534260.html
標籤:r循环
