【发布时间】:2019-01-02 04:47:47
【问题描述】:
为了简化和使我的代码可重现,我有以下循环代码,旨在对数据框进行子集化并将每个子集存储在一个新变量中:
types <- c("POINT", "NONPOINT", "ON-ROAD", "NON-ROAD")
for (i in seq_along(types)) {
paste("type", types[i], sep = "") <- filter(NEI$Emissions, NEI$type == types[i])
}
我希望我的循环将每个子集(4 个子集)存储在一个名为“type”的新变量和相应的字符串中。而不是它,我收到以下错误:
"UseMethod("filter_") 中的错误: 没有适用于“filter_”的方法应用于“c('double', 'numeric')”类的对象
我已经尝试修改通过as.character(types) 将其强制为字符串的类型类,但没有成功。
编辑:head(NEI) 的输出如下:
fips SCC Pollutant Emissions type year
4 09001 10100401 PM25-PRI 15.714 POINT 1999
8 09001 10100404 PM25-PRI 234.178 POINT 1999
12 09001 10100501 PM25-PRI 0.128 POINT 1999
16 09001 10200401 PM25-PRI 2.036 POINT 1999
20 09001 10200504 PM25-PRI 0.388 POINT 1999
24 09001 10200602 PM25-PRI 1.490 POINT 1999
【问题讨论】:
-
大多数情况下你应该通过
split(NEI$Emissions, NEI$type)得到你想要的东西 -
您能否添加来自
dput(head(data))的输出,以便我们更轻松地提供帮助? -
刚刚完成,检查我的编辑。 @RAB
-
我猜你想要实现的目标需要assign
-
@Mauro 然后做
split(NEI, NEI$type)