R 如何根据特定的数据值进行组织

R 如何根据特定的数据值进行组织,r,R,我有这个数据框: structure(list(ID = c(101, 102, 103, 104, 105, 106 ), 1Var = c(1, 3, 3, 1, 1, 1), 2Var = c(1, 1, 1, 1, 1, 1), 3Var = c(3, 1, 1, 1, 1, 1), 4Var = c(1, 1, 1, 1, 1, 1)), row.names = c(NA, 6L), class = "data.frame") 我一直在尝试基于1和0的值进行子

我有这个数据框:

structure(list(ID = c(101, 102, 103, 104, 105, 106
), 1Var = c(1, 3, 3, 1, 1, 1), 2Var = c(1, 1, 
1, 1, 1, 1), 3Var = c(3, 1, 1, 1, 1, 1), 4Var = c(1, 
1, 1, 1, 1, 1)), row.names = c(NA, 6L), class = "data.frame")
我一直在尝试基于1和0的值进行子集划分。此数据表中没有0值,但我的完整数据中有它

我玩弄过这个方法:

Prime <- grep('$Var', names(Data))
DataPrime <- Data[rowSums(Data[Prime] <= 1),]

我想你在寻找类似的东西:

素数1,] >ID 1Var 2Var 3Var 4Var > 4 104 1 1 1 1 > 5 105 1 1 1 1 > 6 106 1 1 1 1 需要注意的几点是:

格雷普里面的正则表达式是错误的。$符号表示字符串的结尾,而不是数字。对于数字,您可以使用\\d。因此,在示例中,您的主变量为空。 最好不要使用列名或任何以数字开头的变量名。这些在R中不是合法的名称。你可以通过在它们周围加上背景标记来绕开它们,但这很容易被忽略,并且是bug的来源。
rowSums将每行中的所有值相加,因此任何一行中的最小值之和为4,而rowSumsData[Prime]我认为您在寻找类似于:

素数1,] >ID 1Var 2Var 3Var 4Var > 4 104 1 1 1 1 > 5 105 1 1 1 1 > 6 106 1 1 1 1 需要注意的几点是:

格雷普里面的正则表达式是错误的。$符号表示字符串的结尾,而不是数字。对于数字,您可以使用\\d。因此,在示例中,您的主变量为空。 最好不要使用列名或任何以数字开头的变量名。这些在R中不是合法的名称。你可以通过在它们周围加上背景标记来绕开它们,但这很容易被忽略,并且是bug的来源。 rowSums将每行中的所有值相加,因此任何一行的最小和为4,而rowSumsData[Prime]我们可以使用Reduce with&创建一个逻辑向量来对行进行子集划分

subset(Data, Reduce(`&`, lapply(Data[-1], `<=`, 1)))
或者另一种选择是行和

我们可以使用Reduce和&来创建一个逻辑向量来对行进行子集划分

subset(Data, Reduce(`&`, lapply(Data[-1], `<=`, 1)))
或者另一种选择是行和

subset(Data, Reduce(`&`, lapply(Data[-1], `<=`, 1)))
#   ID 1Var 2Var 3Var 4Var
#4 104    1    1    1    1
#5 105    1    1    1    1
#6 106    1    1    1    1
subset(Data, !rowSums(Data[-1] > 1))