在R中,聚合字符串数据的好方法是什么

在R中,聚合字符串数据的好方法是什么,r,statistics,s-plus,R,Statistics,S Plus,在R(或S-PLUS)中,在数据帧中聚合字符串数据的好方法是什么 考虑以下几点: myList <- as.data.frame(c("Bob", "Mary", "Bob", "Bob", "Joe")) 目前,我知道的唯一方法是使用summary函数 > summary(as.data.frame(myList)) Bob :3 Joe :1

在R(或S-PLUS)中,在数据帧中聚合字符串数据的好方法是什么

考虑以下几点:

myList <- as.data.frame(c("Bob", "Mary", "Bob", "Bob", "Joe"))
目前,我知道的唯一方法是使用summary函数

> summary(as.data.frame(myList))

 Bob :3                                
 Joe :1                                
 Mary:1      
这感觉像一个黑客。有人能提出更好的办法吗?

你是说这样吗

myList <- c("Bob", "Mary", "Bob", "Bob", "Joe")
r <- rle(sort(myList))
result <- as.data.frame(cbind(r$values, r$lengths))
names(result) <- c("Name", "Occurrences")
result
  Name Occurrences
1  Bob           3
2  Joe           1
3 Mary           1
myList你的意思是这样吗

myList <- c("Bob", "Mary", "Bob", "Bob", "Joe")
r <- rle(sort(myList))
result <- as.data.frame(cbind(r$values, r$lengths))
names(result) <- c("Name", "Occurrences")
result
  Name Occurrences
1  Bob           3
2  Joe           1
3 Mary           1

myList使用
表格
,无需排序:

ctable <- table(myList);
counts <- data.frame(Name = names(ctable),Count = as.vector(ctable));

ctable使用
表格
,无需排序:

ctable <- table(myList);
counts <- data.frame(Name = names(ctable),Count = as.vector(ctable));

ctable这是上述答案的组合(如Thierry所建议)

这给了你

  Var1 Freq
1  Bob    3
2  Joe    1
3 Mary    1

这是上述答案的组合(如Thierry所建议)

这给了你

  Var1 Freq
1  Bob    3
2  Joe    1
3 Mary    1

使用
sqldf
库:

require(sqldf)

myList<- data.frame(v=c("Bob", "Mary", "Bob", "Bob", "Joe"))
sqldf("SELECT v,count(1) FROM myList GROUP BY v")
require(sqldf)

myList使用
sqldf
库:

require(sqldf)

myList<- data.frame(v=c("Bob", "Mary", "Bob", "Bob", "Joe"))
sqldf("SELECT v,count(1) FROM myList GROUP BY v")
require(sqldf)

myList使用
data.table

myList <- data.frame(v1=c("Bob", "Mary", "Bob", "Bob", "Joe"))
library(data.table)
     v1 N
1:  Bob 3
2: Mary 1
3:  Joe 1

myList使用
data.table

myList <- data.frame(v1=c("Bob", "Mary", "Bob", "Bob", "Joe"))
library(data.table)
     v1 N
1:  Bob 3
2: Mary 1
3:  Joe 1

myList您可以将最后一行简化为as.data.frame(ctable)。请注意,只有在一行上放置多个命令时才需要分号。您可以将最后一行简化为as.data.frame(ctable)请注意,只有在一行上放置多个命令时才需要分号。这给了我一个错误-基于Thierry建议的一行是:as.data.frame(table(myList)),这很有趣。您收到了什么样的错误消息?我只是在没有收到错误消息的情况下尝试了一下。请注意——我是在将myList定义为一个列表而不是一个data.frameIt给了我一个错误——基于Thierry建议的一行代码是:as.data.frame(table(myList)),这很有趣。您收到了什么样的错误消息?我只是在没有收到错误消息的情况下尝试了一下。请注意,我是在将myList定义为列表而不是data.frame之后尝试的