String 计算每个字符串在R中出现的次数
给定一个字符串列表,如何计算每个字符串出现的次数?假设我有一个向量x,如下所示:String 计算每个字符串在R中出现的次数,string,r,String,R,给定一个字符串列表,如何计算每个字符串出现的次数?假设我有一个向量x,如下所示: x <- c('cat','cat','cat','cat','dog','dog','cat','cow') 我知道答案的格式不会是这样的,但应该是这样的。有很多方法可以做到这一点。在base R中,这可以使用注释中提到的表格完成,如下所示: set.seed(1L) x <- sample(paste0("V", 1:10), 1e3, TRUE) table(x) # x # V1 V10
x <- c('cat','cat','cat','cat','dog','dog','cat','cow')
我知道答案的格式不会是这样的,但应该是这样的。有很多方法可以做到这一点。在base R中,这可以使用注释中提到的表格完成,如下所示:
set.seed(1L)
x <- sample(paste0("V", 1:10), 1e3, TRUE)
table(x)
# x
# V1 V10 V2 V3 V4 V5 V6 V7 V8 V9
# 96 110 104 93 112 115 86 90 106 88
如果您确实希望获得已排序的结果,只需执行以下操作:setkeyans1,x,它将按ans1中的“x”列对结果进行排序,这在data.table中同样非常快
这里还比较了dplyr的data.frame方法的速度,供感兴趣的人使用——注意,这在默认情况下不会保留输入顺序排序,就像从基表排序一样
require(dplyr) ## Commit 1362 from github
df <- tbl_df(as.data.frame(dt)) ## get tbl_df object
system.time(ans2 <- df %.% group_by(x) %.% summarise(n()))
# user system elapsed
# 15.983 1.318 17.807
有很多方法可以做到这一点。在base R中,这可以使用注释中提到的表格完成,如下所示:
set.seed(1L)
x <- sample(paste0("V", 1:10), 1e3, TRUE)
table(x)
# x
# V1 V10 V2 V3 V4 V5 V6 V7 V8 V9
# 96 110 104 93 112 115 86 90 106 88
如果您确实希望获得已排序的结果,只需执行以下操作:setkeyans1,x,它将按ans1中的“x”列对结果进行排序,这在data.table中同样非常快
这里还比较了dplyr的data.frame方法的速度,供感兴趣的人使用——注意,这在默认情况下不会保留输入顺序排序,就像从基表排序一样
require(dplyr) ## Commit 1362 from github
df <- tbl_df(as.data.frame(dt)) ## get tbl_df object
system.time(ans2 <- df %.% group_by(x) %.% summarise(n()))
# user system elapsed
# 15.983 1.318 17.807
嗯
输出:
x freq
cat 5
cow 1
dog 2
输出:
x freq
cat 5
cow 1
dog 2
我想你们在找桌子。是的,这正是我要找的。谢谢!我想你们在找桌子。是的,这正是我要找的。谢谢!您可以使用tally而不是Summarsen您可以使用tally而不是Summarsen
library("plyr")
count(x)
x freq
cat 5
cow 1
dog 2