gpt4 book ai didi

r - 跨数据框将李克特数据转换为数字

转载 作者:行者123 更新时间:2023-12-02 08:19:23 27 4
gpt4 key购买 nike

<分区>

我有一个数据集,其中包含 90 个对 Likert 项目的响应,我想将其转换为数值。它的结构类似于此处的示例:

q6 <- c("Daily", "Never", "Often", "Very Often", "Daily")
q7 <- c("Never", "Never", "Often", "Often", "Daily")
q23 <- c("Daily", "Often", "Never", "Never", "Neutral")
q17 <- c("Important", "Important", "Very Important", "Neutral", "Not Important")
example <- cbind(q6, q7, q17, q23)

对每个问题的回答略有不同,但主要在非常不同意到非常同意、每天到从不,或者重要到不重要的范围内。对 90 个问题的每个回答都在一个单独的列中(标记为 q1 > q90)。我想为一组响应创建新列,其数值对应于文本响应(强烈同意 (3) 到强烈不同意 (-3),通过中性 (0))。像这样

q6 <- c("Daily", "Never", "Often", "Very Often", "Daily")
n6 <- c(3,-3,1,2,3)
q17 <- c("Important", "Important", "Very Important", "Neutral", "Not Important")
n17 <- c(2,2,3,0,-3)
num_example <- cbind(q6, n6, q17, n17)
num_example

到目前为止,我已经成功使用下面的代码,它生成一个名为 n6 的新变量,该变量与现有 q6 列中的文本响应相匹配,然后我可以使用 cbind 添加到现有数据框中。我的问题是:我如何在 90 个问题的整个数据框架中自动执行此操作,而不必为每个响应运行下面的代码(即将 q6 更改为 q7,然后更改为 q8,等等)。

n6 <- ifelse(example$q6=="Daily", 3,
ifelse(h16$q6=="",0,
ifelse(h16$q6=="Very Often", 2,
ifelse(h16$q6=="Often", 1,
ifelse(h16$q6=="Neither Rarely nor Often", 0,
ifelse(h16$q6=="Rarely", -1,
ifelse(h16$q6=="Very Rarely", -2,
ifelse(h16$q6=="Never", -3,5
))))))))

作为进一步引用,q6:q12 列和 q23:30 列的响应范围从“每日”到“从不”,如上例所示。列 q17:q22 的响应范围从不重要到非常重要,列 q49:q90 的响应范围从强烈同意到强烈不同意。我正在尝试找到一种更智能的方法来在相关列(例如 q6:12、q23:q30)上运行下面的代码,从而生成一个新的数据框,该数据框在名为 n6:n16、n23:30 的列中具有数值,而不必运行 90 次以下的代码!

希望这是对问题的清楚解释。

谢谢。

27 4 0
文章推荐: php - MySQL 中使用 PHP 的多维数组和聚合函数?
文章推荐: SQL 设置运算符 - 从具有不同列的表中选择行
文章推荐: indexing - Solr Schemaless 模式将字段创建为多值
文章推荐: css -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com