我有一个data.frame“ data1”,它由16个变量(列)和64个观察值(行)组成。对于变量的存在与否,变量取0或1的值(o是结果变量):
x y z o
1 0 1 1
1 1 1 1
0 0 1 1
0 1 0 1
1 0 0 1
1 1 0 1
0 0 0 1
0 0 1 1
数据文件是一个Excel文件,我作为.csv文件导入到R中。我使用以下代码将变量的名称更改为较短的变量:
require(dplyr)
library(QCA)
cleaned_data <- data1 %>%
dplyr::rename_(
'x' = 'treatmentconcerns.revelationabout',
'y' = 'treatmentconcerns.familyconcerns',
'z' = 'treatmentconcerns.familyemotional',
'o' = 'outcmomy'
)
我将使用以下代码进行定性比较分析(QCA)分析:
data1NR <- superSubset(cleaned_data, outcome = "OUTC", incl.cut = 0.9, cov.cut = 0.5)
但是R带来以下错误,我不知道如何解决:
Error in superSubset(cleaned_data, outcome = "OUTC", incl.cut = 0.9, cov.cut = 0.5) :
INTEGER() can only be applied to a 'integer', not a 'double'
我用过:
str()
看看我的数据的结构是什么,它说我所有的变量都是整数,但是我被困住了,不知道为什么会再次出现此错误?
有人可以帮我解决吗?我搜索了前面的问题,但找不到适合我的情况的答案。
预先感谢, 埃什梅尔
答案 0 :(得分:1)
我认为问题出在命名部分: 名称应该放在第一位,不确定是否对您有用:
df %>%
rename(Treatment=x)
在您的情况下,您将需要以下内容:
clean<-df %>%
rename(
treatmentconcerns.revelationabout=x,
treatmentconcerns.familyconcerns=y,
treatmentconcerns.familyemotional=z,
outcmomy=o)
这对我有用:
superSubset(clean, outcome ="outcmomy", incl.cut = 0.9, cov.cut = 0.5)
inclN RoN covN
----------------------------------------------------------------------------------------------------------------------------
1 TREATMENTCONCERNS.REVELATIONABOUT+treatmentconcerns.familyconcerns+treatmentconcerns.familyemotional 1.000 0.000 1.000
----------------------------------------------------------------------------------------------------------------------------