多分これはあなたのために役立つでしょう。
# Creating some data
set.seed(001)
count <- sample(1:100, 6, TRUE)
DF <- data.frame(vocabulary=c('action', 'can', 'book', 'candy', 'any','bar'),
count=count,
probability=count/sum(count)
)
# Spliting by the first letter
Split <- lapply(1:3, function(DF, i){
DF[grep(paste0('^', letters[i]), DF$vocabulary),]
}, DF=DF)
Split
[[1]]
vocabulary count probability
1 action 27 0.08307692
5 any 21 0.06461538
[[2]]
vocabulary count probability
3 book 58 0.1784615
6 bar 90 0.2769231
[[3]]
vocabulary count probability
2 can 38 0.1169231
4 candy 91 0.2800000
結果がリストであることがわかるように、すべてのアルファベット文字を考慮に入れるために1:3
、withでlapplycallを変更することをお勧めします。1:26
結果は劣化していないことに注意してください。ただし、これはパッケージorderBy
の関数を使用して簡単に実行できます。doBy
lapply(Split, function(x) orderBy(~vocabulary, data=x ))
[[1]]
vocabulary count probability
1 action 27 0.08307692
5 any 21 0.06461538
[[2]]
vocabulary count probability
6 bar 90 0.2769231
3 book 58 0.1784615
[[3]]
vocabulary count probability
2 can 38 0.1169231
4 candy 91 0.2800000