我有我data.frame(Analysis)
,其中包括一项调查显示对策:
Q1 <- c("Agree", "Strongly Agree", "Disagree", "Neither", "Agree", "Neither")
我希望值分配给每个响应,根据自己的水平。例如,"Strongly Agree"
收到2同时"Agree"
接收的1分我所需的输出是:
Q1 <- c("Agree", "Strongly Agree", "Disagree", "Neither", "Agree", "Neither")
Q1_Score <- c(1, 2, -1, 0, 1, 0)
这似乎是一个简单的问题,但我有找到答案的难度!
谢谢。一个值分配给字符串
8
A
回答
5
您可以使用revalue
从plyr
包与更名水平的Analysis
数据帧创建一个新的因素列:
library(plyr)
Analysis$Q1_Score <- revalue(Analysis$Q1,
c("Strongly Agree"="2", "Agree"="1", "Neither"="0", "Disagree"="-1"))
5
你可以把值和代码在一个单独的数据帧,然后使用match
,让他们成为你的主要数据帧:
dat <- data.frame(Q1,Q1_Score)
Analysis$Q1_Score <- dat$Q1_Score[match(Analysis$Q1, dat$Q1)]
2
您可以在因子变量适当地命令他们,然后转换为数值像所以:
Q1 <- factor(Q1, levels=c("Disagree","Neither","Agree","Strongly Agree"))
as.numeric(Q1)-2
#[1] 1 2 -1 0 1 0
您减去2,因为最低因子水平被存储为1,而您想要最低水平为-1。
或者,一个班轮,它返回一个因子变量,而不是数学运算:
factor(Q1, levels=c("Disagree","Neither","Agree","Strongly Agree"), labels=c(-1,0,1,2))
#[1] 1 2 -1 0 1 0
#Levels: -1 0 1 2
相关问题
- 1. 将多个值分配给一个声明的字符串
- 2. 如何将两个枚举值分配给一个字符串?
- 3. 将字符串分配给另一个字符串
- 4. C++将字符串参数分配给一个字符串
- 5. JsonConvert - 无法字符串值分配给一个字符串变量
- 6. 将appSettings值分配给字符串
- 7. 如何将HTML值分配给一个asp.net字符串变量
- 8. 使用返回值从函数分配给一个字符串
- 9. JavaScript将一个字符串的索引值分配给另一个索引值
- 10. 将字符串的值分配给字符串数组
- 11. C++将一个字符串的元素分配给一个新的字符串
- 12. 从结构分配一个字符串转换为字符值
- 13. 将不同的字符串分配给一个数字 - JSON
- 14. 值分配给在C字符数组(字符串)
- 15. 分割字符串并将第一个值分配给PowerShell中的变量
- 16. 将字符串文字分配给char *
- 17. 如何将多个值分配给oracle中的字符串
- 18. 给一个变量一个数字值和字符串值?
- 19. 如何将字符串分配给单个字符?
- 20. 如何将键分配给字符串中的每个字符?
- 21. 如何将URLVariables结果分配给一个字符串变量?
- 22. 如何将XML标签分配给一个字符串变量
- 23. 返回的字符串分配给一个标签在MVC
- 24. 输入的字符串也分配给一个整数?
- 25. 将json字符串分配给C中的一个变量#
- 26. 如何将字符串值分配给列表框选择值
- 27. 为Perl substr分配一个字符串?
- 28. 分配字符串到一个int?
- 29. 串字符被分配到一个char
- 30. 分配数字值给字符串数组
我投了使用'plyr'软件包的答案,但我也喜欢你的答案,使用R的基础。谢谢你。 – user2716568
甚至只是'c(“强烈同意”= 2,“同意”= 1,“都不”= 0,“不同意”= - 1)[Q1]' – thelatemail