Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
R 在数据帧列表中查找因子的每一级别的出现次数_R_Lapply - Fatal编程技术网

R 在数据帧列表中查找因子的每一级别的出现次数

R 在数据帧列表中查找因子的每一级别的出现次数,r,lapply,R,Lapply,我有一个数据帧,我按名称将其拆分为一个数据帧列表。因子变量“状态”有三个级别:计划、取消、推迟。我想计算每个名字的每一级状态的数量,我不知道该怎么做。我曾尝试在lapply中使用summary,但无法使其发挥作用。我也不知道是否有更简单的方法可以在不拆分数据帧的情况下实现这一点。我还希望能就如何为那些希望提供答案的人提供数据框架列表的良好示例提供一些建议 您可以使用functiontable并提供具有不同级别的列名作为参数,该参数应提供该变量中每个级别的计数。如下图所示: #### Iris E

我有一个数据帧,我按名称将其拆分为一个数据帧列表。因子变量“状态”有三个级别:计划、取消、推迟。我想计算每个名字的每一级状态的数量,我不知道该怎么做。我曾尝试在lapply中使用summary,但无法使其发挥作用。我也不知道是否有更简单的方法可以在不拆分数据帧的情况下实现这一点。我还希望能就如何为那些希望提供答案的人提供数据框架列表的良好示例提供一些建议

您可以使用function
table
并提供具有不同级别的列名作为参数,该参数应提供该变量中每个级别的计数。如下图所示:

#### Iris Example
data(iris)

head(iris)


#### Column name Species have three levels:
#### setosa versicolor virginica
#### Below code counts each level in the iris dataset
table(iris$Species)
#setosa versicolor  virginica 
#50         50         50 

#### Let's split the data randomly
index<-sample(1:nrow(iris),nrow(iris) * .8, replace = FALSE)
dataset_1<-iris[index,]
dataset_2<-iris[-index,]


table(dataset_1$Species)
#setosa versicolor  virginica 
#42         34         44 

table(dataset_2$Species)
#setosa versicolor  virginica 
#8         16          6 
#####虹膜示例
数据(iris)
头部(虹膜)
####列名种类有三个级别:
####维吉尼亚杂色刚毛
####下面的代码统计iris数据集中的每个级别
表(鸢尾属$种)
#维吉尼亚杂色刚毛
#50         50         50 
####让我们随机分割数据

索引一个简单的解决方案:

library(plyr)
library(dplyr)

#dummy data

df1 <- data.frame(name = factor(c('Dave', 'Bob', 'Ryan')), status = factor(c('a', 'b', 'c')), number = c(10, 20, 30))
df2 <- data.frame(name = factor(c('Dave', 'Bob', 'Ryan')), status = factor(c('b', 'a', 'c')), number = c(5, 23, 61))

#add a column to count factor levels

df1['num'] <- 1
df2['num'] <- 1
ldf <- list(df1, df2)


#solution

rbind.fill(ldf) %>% group_by(name, status) %>% summarise(total_status = sum(num))
库(plyr)
图书馆(dplyr)
#虚拟数据

df1
表格(你的.data.frame$状态)
虽然没有给出每个人的总数,但是
表格(你的.data.frame$状态,你的.data.frame$名称)
,编辑你的问题并提供一些数据来说明你的问题,以便我们能够理解它并更好地帮助你。我问过如何从数据框列表中提供数据示例。任何输入都会有帮助@JilberUrbina