Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 计算每个字符串在R中出现的次数_String_R - Fatal编程技术网

String 计算每个字符串在R中出现的次数

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,如下所示:

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