R 如何仅从列中具有特定值的用户处获取信息进行子集

R 如何仅从列中具有特定值的用户处获取信息进行子集,r,subset,R,Subset,我有一个非常大的数据集,我想创建一个新表,其中只包含来自等于某个数字的列的信息。这是一个伪造的数据集,但我们称之为mydata。 我的实际数据集比这个大得多,但这基本上是我想要看到的我们可以根据“V4”中的“0”值对数据集的行进行子集,同时选择ing列1到4 subset(df1, V4 == 0, select = 1:4) 如果您的数据文件非常大,并且您只需要符合特定标准的行,那么packagesqldf可以在读取数据时进行过滤 下面是一个示例用例。我将在内置数据集中创建一个二进制列ir

我有一个非常大的数据集,我想创建一个新表,其中只包含来自等于某个数字的列的信息。这是一个伪造的数据集,但我们称之为mydata。


我的实际数据集比这个大得多,但这基本上是我想要看到的

我们可以
根据“V4”中的“0”值对数据集的行进行子集
,同时
选择
ing列1到4

subset(df1, V4 == 0, select = 1:4)

如果您的数据文件非常大,并且您只需要符合特定标准的行,那么package
sqldf
可以在读取数据时进行过滤

下面是一个示例用例。我将在内置数据集中创建一个二进制列
iris
,并将新表写入磁盘

library(sqldf)

set.seed(1234)
iris1 <- iris
iris1$V4 <- rbinom(nrow(iris1), 1, 0.5)
write.table(iris1, "iris3.dat", sep = ",", quote = FALSE, row.names = FALSE)
子集
的结果进行比较

df2 <- subset(iris1, V4 == 0)
row.names(df2) <- NULL
all.equal(df1, df2)
#[1] "Component “Species”: Modes: character, numeric"                      
#[2] "Component “Species”: Attributes: < target is NULL, current is list >"
#[3] "Component “Species”: target is character, current is factor"

你试了什么?你到底把卡在哪里了?如果您包含一个简单的示例输入和所需输出,可用于测试和验证可能的解决方案,则更容易为您提供帮助。可能重复:
df2 <- subset(iris1, V4 == 0)
row.names(df2) <- NULL
all.equal(df1, df2)
#[1] "Component “Species”: Modes: character, numeric"                      
#[2] "Component “Species”: Attributes: < target is NULL, current is list >"
#[3] "Component “Species”: target is character, current is factor"
unlink("iris3.dat")
rm(iris1, df1, df2)