R 中的子集数据 returns 0 列,619 行
Subsetting data in R returns 0 columns, 619 rows
目前我正在使用 r 中的数据集,它是从转换为 csv 的 SPSS 文件导入的。数据包括性别、种族和测试组等多个因素,以及我要求和的一组权重。我想根据多种条件(即女性 + 白人 + group1)对这些权重求和,所以我尝试对数据进行子集化。
small.set<-subset(df, df[,"gender"]==1 & df[,"ethnicity"] ==1 &
df[,"group"==1])
但是,我收到以下错误:
Error in matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr,
: 'data' must be of a vector type, was 'NULL'
我发现无论如何尝试 select 第 1 组时,R 返回了奇怪的结果:
df["group"==1]
> data frame with 0 columns and 619 rows
"group"的结构如下:
str(df["group")
>Factor w/ 3 levels "1", "2", "3": 1 3 1 1 2...
有谁知道是什么导致了这种情况发生?
为什么不避免使用sample,直接使用:
small.set<-df[df$gender == 1 & df$ethnicity == 1 && df$group == 1,]
另一个好方法是使用 data.table 包:
library(data.table)
df<-data.table(df)
small.set<-df[.(gender==1,ethnicity == 1,group == 1)]
目前我正在使用 r 中的数据集,它是从转换为 csv 的 SPSS 文件导入的。数据包括性别、种族和测试组等多个因素,以及我要求和的一组权重。我想根据多种条件(即女性 + 白人 + group1)对这些权重求和,所以我尝试对数据进行子集化。
small.set<-subset(df, df[,"gender"]==1 & df[,"ethnicity"] ==1 &
df[,"group"==1])
但是,我收到以下错误:
Error in matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr,
: 'data' must be of a vector type, was 'NULL'
我发现无论如何尝试 select 第 1 组时,R 返回了奇怪的结果:
df["group"==1]
> data frame with 0 columns and 619 rows
"group"的结构如下:
str(df["group")
>Factor w/ 3 levels "1", "2", "3": 1 3 1 1 2...
有谁知道是什么导致了这种情况发生?
为什么不避免使用sample,直接使用:
small.set<-df[df$gender == 1 & df$ethnicity == 1 && df$group == 1,]
另一个好方法是使用 data.table 包:
library(data.table)
df<-data.table(df)
small.set<-df[.(gender==1,ethnicity == 1,group == 1)]