gpt4 book ai didi

r - 如何根据特定位置的受访者人数进行过滤?错误:Error in FUN(left, right):

转载 作者:行者123 更新时间:2023-12-03 08:25:14 24 4
gpt4 key购买 nike

我希望能够按地区计算%的含量。事实是,我的数据集是一个调查,每一行都是受访者。随着受访者人数的增加,行数也会增加。

我希望能够计算每个地区的受访者总数以及每个地区满意的受访者总数。

我知道我必须以某种方式使用过滤器功能,但是我无法根据自己的情况对其进行自定义。

这是我的代码:

jbnew <- jb %>%
mutate(content = ifelse(as.numeric(sum.contentcir >= 3),1,0))%>%
filter (jb, n())%>%
group_by(jb,district) %>%
summarise(Num.Totalrespondents =n(),
Num.totalcontent = sum(content))%>%
mutate(percent.totalcontent = Num.totalcontent/Num.Totalrespondents)

错误我得到这个:
Error in FUN(left, right) : 
operations are possible only for numeric, logical or complex types

我的数据示例:
    Districts    sum.contentcir  content
1 AMA 4 1
2 Dule 2 0
3 Dule 5 1
4 Dule 1 0
5 Sep 3 1
6 Sep 1 0
7 AMA 0 0
8 Sep 7 1
9 AMA 1 0
10 Sep 0 0

我希望最终数据集看起来像什么:
Districts    Totalrespondents      totalcontent         per.content

AMA 3 1 33
Dule 3 1 33
Sep 4 2 50

我需要做的整个概念在我脑海中都是有意义的,但是我很难将其翻译成代码。感谢您提供有关此错误发生情况的信息。

最佳答案

使用dplyr,您可以执行以下操作:

library(dplyr)

jb %>%
group_by(Districts) %>%
summarise(Totalrespondents = n(),
totalcontent = sum(content),
per.content = totalcontent/Totalrespondents * 100)

# Districts Totalrespondents totalcontent per.content
# <chr> <int> <int> <dbl>
#1 AMA 3 1 33.3
#2 Dule 3 1 33.3
#3 Sep 4 2 50

使用 data.table的方式相同:
library(data.table)

setDT(jb)[, .(Totalrespondents = .N,
totalcontent = sum(content),
per.content = sum(content)/.N * 100), Districts]

关于r - 如何根据特定位置的受访者人数进行过滤?错误:Error in FUN(left, right):,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61852662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com