【发布时间】:2020-11-03 01:12:06
【问题描述】:
我的完整数据集更大,但我有这个可重现的样本:
structure(list(ID = c("121", "122", "123", "124"), Var1P = c("3",
"1", "3", "3"), Var1C = c("1", "3", "3", "1"), Var2P = c("1",
"1", "1", "1"), Var2P = c("1", "1", "1", "1"), Var3P = c("1",
"1", "1", "1"), Var3C = c("1", "1", "1", "1"), Var4P = c("1",
"1", "1", "1"), Var4C = c("1", "3", "1", "1"), Var5P = c("1",
"1", "3", "1"), Var5C = c("1", "1", "1", "1"), Var6P = c("1",
"1", "1", "1"), Var6C = c("1", "1", "1", "1"), Var7P = c("1",
"1", "1", "1"), Var7C = c("1", "1", "1", "1"), Var8 = c("0",
"1", "1", "1")), row.names = c(84L, 150L, 271L, 303L), class = "data.frame")
我想对数据进行子集化,以便仅在 Var1P 或 Var1C 下得分为 3 的观察值以及所有其他列的得分为 2、1 或 0。我尝试使用简单的子集函数:
Data <- subset(Data, Var1P == 3 | Var1C == 3)
但是,我怎样才能使这个论点更加复杂,同时告诉 R 也删除其他列下得分为 3 的条目?
我认为只需使用以下代码即可:
Data <- subset(Data, Var1P == 3 | Var1C == 3 & 4:16 == 1 | 4:16 == 0)
我认为这不是因为 R 会查看行号。我不想输入所有列名,因为就像我说的那样,我的完整数据框要大得多。我也在努力避免循环。
【问题讨论】:
标签: r