Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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
R 分组因子、数据框和tapply的问题_R_Statistics_Dataframe_Tapply - Fatal编程技术网

R 分组因子、数据框和tapply的问题

R 分组因子、数据框和tapply的问题,r,statistics,dataframe,tapply,R,Statistics,Dataframe,Tapply,一般来说,我对R和stats都很陌生,在让tapply()工作时遇到了麻烦。我有一个包含15列和数千行的数据框。我使用类似于y10的东西制作了一组逻辑向量,这里可以使用(xtapply,您只需将组向量添加到您的数据中。frame,然后使用tapply,如下所示: # Generating a 'group' vector with variability in its values # and merging it to the existing data.frame (FOO) set.se

一般来说,我对R和stats都很陌生,在让tapply()工作时遇到了麻烦。我有一个包含15列和数千行的数据框。我使用类似于
y10的东西制作了一组逻辑向量,这里可以使用(x
tapply
,您只需将
向量添加到您的
数据中。frame
,然后使用
tapply
,如下所示:

# Generating a 'group' vector with variability in its values 
# and merging it to the existing data.frame (FOO)
set.seed(1)
FOO$group <- as.factor(sample( 1:8, nrow(FOO), replace=TRUE)) 

# Using tapply
tapply(FOO[,-16], FOO[,16], sample, size=20, replace=TRUE)
#生成值可变的“组”向量
#并将其合并到现有的data.frame(FOO)
种子(1)

FOO$group
tapply
可在此处使用,您只需将
group
向量添加到
数据中。frame
,然后使用
tapply
,如下所示:

# Generating a 'group' vector with variability in its values 
# and merging it to the existing data.frame (FOO)
set.seed(1)
FOO$group <- as.factor(sample( 1:8, nrow(FOO), replace=TRUE)) 

# Using tapply
tapply(FOO[,-16], FOO[,16], sample, size=20, replace=TRUE)
#生成值可变的“组”向量
#并将其合并到现有的data.frame(FOO)
种子(1)

FOO$group如果您提供了一些示例数据,这个问题将更容易回答。使用
dput(head(yourdata,15))
或类似的方法可能会有所帮助。您可能希望使用
nrow(dataframe)
,它给出行数,而不是
长度(dataframe)
,它给出了用于比较的列数。谢谢,我刚刚尝试过,它返回了正确的行数(即数据框中的行数与分组因子中的行数相同)。您已经提供了输入数据,好吧。但是我们没有
。您的帖子还不能完全复制。另外,您寻求的最终输出是什么?这些元素会更快得到您的答案。@FalseAzure您之所以会得到错误,是因为您向
tapply
提供了
数据.frame
而不是
向量
函数。仔细阅读您必须找到的帮助文件:
X一个原子对象,通常是一个向量。
也许
aggregate
更适合这种情况。如果您提供一些示例数据,这个问题将更容易回答。使用
dput(head(yourdata,15))
或某种程度上的东西可能会有帮助。您可能希望使用给出行数的
nrow(dataframe)
,而不是给出列数的
length(dataframe)
,来进行比较。谢谢,我刚刚尝试过,它返回了正确的行数(即数据框中的行数与分组因子中的行数相同)。您已经提供了输入数据,好吧。但是我们没有
。您的帖子还不能完全复制。另外,您寻求的最终输出是什么?这些元素会更快得到您的答案。@FalseAzure您之所以会得到错误,是因为您向
tapply
提供了
数据.frame
而不是
向量
函数。仔细阅读您必须找到的帮助文件:
X原子对象,通常是向量。
也许
aggregate
更适合这种情况。谢谢!出于某种原因,我仍然会遇到相同的错误,但我应该能够找到它。谢谢!出于某种原因,我仍然会遇到相同的错误,但我应该能够去弄清楚。
structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8"), class = "factor")
# Generating a 'group' vector with variability in its values 
# and merging it to the existing data.frame (FOO)
set.seed(1)
FOO$group <- as.factor(sample( 1:8, nrow(FOO), replace=TRUE)) 

# Using tapply
tapply(FOO[,-16], FOO[,16], sample, size=20, replace=TRUE)