具有colmeans条件的R示例数据帧

具有colmeans条件的R示例数据帧,r,dataframe,dplyr,tidyverse,purrr,R,Dataframe,Dplyr,Tidyverse,Purrr,我有一个数据“TestA”,如下所示 IDNUMBER B1 B2 B3 B4..... B46 ID1 1 1 0 0 ..... 0 ID2 0 1 0 0 ..... 1 ID3 0 1 0 0 ..... 1 数据分为两组(0和1),200行48列。我想要得到的是我想要选择50行和48列,每列的意思是必须介于0和1之间(不包括0和1) 基本上,对于50行,我的输出是这样的 IDNU

我有一个数据“TestA”,如下所示

    IDNUMBER B1 B2 B3 B4..... B46  
    ID1      1  1  0  0 ..... 0  
    ID2      0  1  0  0 ..... 1   
    ID3      0  1  0  0 ..... 1  
数据分为两组(0和1),200行48列。我想要得到的是我想要选择50行和48列,每列的意思是必须介于0和1之间(不包括0和1)

基本上,对于50行,我的输出是这样的

    IDNUMBER B1 B2 B3 B4..... B46  
    ID45      1  1  0  0 ..... 0  
    ID23      0  1  0  0 ..... 1      
    ID186     0  1  0  0 ..... 1  
    ...
    Colmeans  0.91 0.32 0.03.... (not equal to 0 or 1)
PS:每个变量至少有一个“1”和一个“0”


这是一个我无法克服的迭代过程。如何使用该条件选择(采样或筛选)50行?

如果您的数据帧是
x
,类似的方法应该可以工作:

rbind(x, c('Colmeans', colMeans(x[,-1])))

如果您的数据帧是
x
,那么类似的方法应该可以工作:

rbind(x, c('Colmeans', colMeans(x[,-1])))

使用
rowMeans
获取数据帧的列平均值。使用
sample
选择平均值介于0和1之间的50个随机行

val <- rowMeans(TestA[-1], na.rm = TRUE)
res <- TestA[sample(which(val > 0 & val < 1), 50), ]

val使用
rowMeans
获取数据帧的列平均值。使用
sample
选择平均值介于0和1之间的50个随机行

val <- rowMeans(TestA[-1], na.rm = TRUE)
res <- TestA[sample(which(val > 0 & val < 1), 50), ]

val实际上,我需要一个帮助来采样这50行:)我如何根据条件从200行中选择50行?@gradenti你可以这样做,然后
sampled\u行实际上,我需要一个帮助来对这50行进行采样:)如何根据条件从200行中选择50行?@gradienti您可以这样做,然后
sampled\u行我想您指的是行,即选择中的列。我说得对吗?colMeans==0表示所有元素都是
0
,类似地
1
表示所有元素都是1。如果此场景中没有可能的示例,该怎么办?要理解它,可以这样想,如果N=1,那么所有的colMeans要么为0,要么为1。并且存在大小为N=1的样本。现在在该示例中再添加一行。平均值为0且新值为0的变量的平均值仍为0。因此,可能存在这样一种情况,即您可能找不到具有所需N的样本。我认为您指的是所选列的平均值。我说得对吗?colMeans==0表示所有元素都是
0
,类似地
1
表示所有元素都是1。如果此场景中没有可能的示例,该怎么办?要理解它,可以这样想,如果N=1,那么所有的colMeans要么为0,要么为1。并且存在大小为N=1的样本。现在在该示例中再添加一行。平均值为0且新值为0的变量的平均值仍为0。因此,可能存在一种情况,即您可能无法找到具有所需N的样本。