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