gpt4 book ai didi

在整个 DF 上运行 prop.table

转载 作者:行者123 更新时间:2023-12-02 09:35:31 27 4
gpt4 key购买 nike

所以我正在尝试在客户调查中运行频率。该调查有 108 个变量,响应编码为 1-5,其中 9 是我们的 NA。一些变量是基于文本的。原始数据如下所示:

Q1 Q2 Q3 Q4
1 3 2 Mazda
2 3 4 Ford
3 5 2 Toyota
9 3 2 Hyundai

理想情况下,我想知道有多少人以这种格式针对 108 个变量的每个问题回答了每个问题。例如,我的新数据框中的第一列是:

Q1
1 25%
2 25%
3 25%
4 0%
5 0%
9 25%

我试过用

Frequencies = apply(df, 2, table)

它以列表的形式吐出。不过我想运行这个列表

prop.table(Frequencies, 2)

获取列百分比。但是,我收到错误“margin.table(x, margin) 中的错误:'x' 不是数组。”

我已经尝试了几天将频率转换为数据框,但没有成功。有什么想法吗?

谢谢!

PS:我已经研究了四天了,在网上找不到解决方案。对不起,它太基本了。我对此很陌生。

最佳答案

尝试:

> ddf
Q1 Q2 Q3 Q4
1 1 3 2 Mazda
2 2 3 4 Ford
3 3 5 2 Toyota
4 9 3 2 Hyundai
>
> sapply(apply(ddf, 2, table), function(x) x/sum(x))
$Q1

1 2 3 9
0.25 0.25 0.25 0.25

$Q2

3 5
0.75 0.25

$Q3

2 4
0.75 0.25

$Q4

Ford Hyundai Mazda Toyota
0.25 0.25 0.25 0.25

或者,正如@DavidArenburg 在评论中建议的那样:

lapply(ddf, function(x) prop.table(table(x)))

关于在整个 DF 上运行 prop.table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26707599/

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