與data.frame如開始:強制data.frame到列表中排
df = read.table(text = "ref1 code1,code2
ref2 code3,code4,code5
ref3 code6", stringsAsFactors=F)
names(df) = c('id', 'codes')
print(df)
id codes
1 ref1 code1,code2
2 ref2 code3,code4,code5
3 ref3 code6
希望的一個結果是這樣的:
lst = list()
for(i in 1:3) lst[[df[i,1]]] = strsplit(df[i,2], ',')[[1]]
print(lst)
$ref1
[1] "code1" "code2"
$ref2
[1] "code3" "code4" "code5"
$ref3
[1] "code6"
它怎麼可能可以去這一點沒有(慢)迭代? as.list(df)
只能按列操作:
$id
[1] "ref1" "ref2" "ref3"
$codes
[1] "code1,code2" "code3,code4,code5" "code6"
在此先感謝。
啊'split'就是我過去的!但我喜歡你的小'lapply'蓬勃發展:) – geotheory
我個人比較喜歡'setNames(strsplit(df $ codes,「,」),df $ id)',但是'split'步驟中的概念爲+1。 – A5C1D2H2I1M1N2O1R2T1
@AnandaMahto Yeesh。我認爲你非常慷慨地讚揚我不必要地使用'split'。 – joran