我認爲你正在尋找strsplit()函數;
a = "2000,1450,1800,2200"
strsplit(a, ",")
[[1]]
[1] "2000" "1450" "1800" "2200"
注意strsplit返回一個列表,在這種情況下,只有一個元素。這是因爲strsplit將向量作爲輸入。因此,您還可以將單個單元格字符的長矢量放入函數中,並獲取該矢量的分割列表。在一個更相關的例子這個樣子:
# Create some example data
dat = data.frame(reaction_time =
apply(matrix(round(runif(100, 1, 2000)),
25, 4), 1, paste, collapse = ","),
stringsAsFactors=FALSE)
splitdat = do.call("rbind", strsplit(dat$reaction_time, ","))
splitdat = data.frame(apply(splitdat, 2, as.numeric))
names(splitdat) = paste("trial", 1:4, sep = "")
head(splitdat)
trial1 trial2 trial3 trial4
1 597 1071 1430 997
2 614 322 1242 1140
3 1522 1679 51 1120
4 225 1988 1938 1068
5 621 623 1174 55
6 1918 1828 136 1816
最後,計算出每人平均:
apply(splitdat, 1, mean)
[1] 1187.50 361.25 963.75 1017.00 916.25 1409.50 730.00 1310.75 1133.75
[10] 851.25 914.75 881.25 889.00 1014.75 676.75 850.50 805.00 1460.00
[19] 901.00 1443.50 507.25 691.50 1090.00 833.25 669.25
哇,偉大而快速的迴應保羅,dankjewel!工作就像一個魅力:) 如果我沒有弄錯,你也可以使用「colMeans」和「rowMeans」,而不是'apply(splitdat,1,mean)'? PS:對不起,我不能投票給你,顯然我需要15聲望?! – user1092247
你是對的課程:)。但我認爲使用apply也很好,因爲它更靈活。你是否也來自荷蘭? –
謝謝!是的,我也來自荷蘭:) – user1092247