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))