Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分层data.frame会导致R中的零行/观测值_R_Database_Dataframe_Row - Fatal编程技术网

分层data.frame会导致R中的零行/观测值

分层data.frame会导致R中的零行/观测值,r,database,dataframe,row,R,Database,Dataframe,Row,我使用以下命令将我的数据进行分层。frame(80列,10.000行)通过因子变量school,分为两个级别(0:high,1:low): high.school=data.frame[which(data.frame$school==0) , ] low.school=data.frame[which(data.frame$school==1) , ] 但是它产生了两个data.frames,包含所有80列,但包含0行。为什么不考虑这些行 谢谢 简短回答为什么要用哪个? 让我们试试这个 &g

我使用以下命令将我的
数据进行分层。frame
(80列,10.000行)通过因子变量
school
,分为两个级别(
0:high,1:low
):

high.school=data.frame[which(data.frame$school==0) , ]
low.school=data.frame[which(data.frame$school==1) , ]
但是它产生了两个
data.frames
,包含所有80列,但包含
0行。为什么不考虑这些行


谢谢

简短回答为什么要用哪个? 让我们试试这个

> DF=NULL
> DF$school=as.factor(sample(c(0,1),10000,T))
> DF=as.data.frame(DF)
> head(DF)
  school
1      0
2      0
3      1
4      1
5      0
6      1
> str(DF)
'data.frame':   10000 obs. of  1 variable:
 $ school: Factor w/ 2 levels "0","1": 1 1 2 2 1 2 1 2 2 2 ...
你可以看到学校的因子值是1,2,而因子水平是0,1 现在试试下面的方法

> df2=DF[DF$school==1,]
> df3=DF[DF$school==0,]
> str(df2)
 Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ...
> str(df3)
 Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...

> head(df2)
[1] 1 1 1 1 1 1
Levels: 0 1
> head(df3)
[1] 0 0 0 0 0 0
Levels: 0 1

检查变量名-
学校
。您可能写错了。您的数据框的名称真的是
data.frame
?使用
data.frame
作为对象名可能不是一个好主意。另外,您能给我们看一下应用于您的数据框的
str
结果吗?写得正确。这只是一个通用名称,我的数据框不调用data.frame。我的数据框有数字和因子字符。