簡體   English   中英

從函數中命名對象

[英]Naming objects from functions

我是 R 的初學者。 我有一個龐大的數據集,我正在嘗試創建一個循環來優化時間。

我有類似的東西:

a <- c ('exam12', 'example22', 'e33')

b <- list (c (2,4,5,6), c (10,4,8,6), c (25, 3, 7, 30))

我想使用a的字符串作為其他值的對象名稱,在我的環境中獲得類似:

exam <- c (2,4,5,6)

example <- c (10,4,8,6)

e <- c (25, 3, 7, 30)

我嘗試了以下方法:

for (i in seq_along (a)) {
for (j in seq_along (b)) {
str_sub (a [i], start = 1, end = -1) <- b [j]
}
}

但我沒有成功。 我很感激任何幫助。

您可以使用list2env

a <- c ('exam12', 'example22', 'e33')
b <- list (c (2,4,5,6), c (10,4,8,6), c (25, 3, 7, 30))
a
# [1] "exam12"    "example22" "e33"      
b
# [[1]]
# [1] 2 4 5 6
# 
# [[2]]
# [1] 10  4  8  6
# 
# [[3]]
# [1] 25  3  7 30

ls()
# [1] "a" "b"
list2env(setNames(b, sub("\\d+$", "", a)), .GlobalEnv)
# <environment: R_GlobalEnv>
ls()
# [1] "a"       "b"       "e"       "exam"    "example"
exam
# [1] 2 4 5 6

作為參考,您也可以使用assign執行此操作,例如:

for (i in seq_along(a)) {
  assign(sub("\\d+$", "", a[i]), b[[i]])
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM