創建數據表,讓我們說我有一個data.table
使用循環
DT=data.table(name = sample(letters[1:25],30,replace=T), value =rnorm(3000))
我想分裂DT
的名稱,並創建新的DTS,如姓名DT_a
,對應的名稱值DT_b
。那我該怎麼辦呢?
創建數據表,讓我們說我有一個data.table
使用循環
DT=data.table(name = sample(letters[1:25],30,replace=T), value =rnorm(3000))
我想分裂DT
的名稱,並創建新的DTS,如姓名DT_a
,對應的名稱值DT_b
。那我該怎麼辦呢?
試試這個:
DTs = split(DT, DT$name)
lapply(names(DTs), function(x) assign(paste0('DT_',x), DTs[[x]], envir=.GlobalEnv))
我們可以使用list2env
lst <-split(DT, DT$name)
list2env(setNames(lst, paste0("DT_", names(lst))), envir = .GlobalEnv)
不過,建議保持在一個list
,而不是在全球環境中創建多個數據集。但是,如果這只是爲了瞭解創建對象的可能性,則可以使用list2env
。
Thx,也可以工作 – VincentLin
Downvoter,我剛剛修改了一些建議如果你想改變downvote,歡迎你。 – akrun
Thx的工作! – VincentLin
我有一個問題,爲什麼要添加.globalenv?我試圖刪除它,並返回了錯誤的結果 – VincentLin
沒有它,分配只發生在函數「內部」。同樣的原因,'f = function(){x = 5}; f()'不能創建一個變量'x' – sirallen