【发布时间】:2016-09-15 11:53:31
【问题描述】:
以下是基于我的一小部分数据的示例:
NAME <- c("SYNOP", "SYNOP", "METAR", "METAR", "SYNOP", "METAR")
AIR <- c(6.7, 8.3, 9.2, 8.9, 9.1, 8.7)
Example <- data.frame(NAME, AIR)
NAME AIR
1 SYNOP 6.7
2 SYNOP 8.3
3 METAR 9.2
4 METAR 8.9
5 SYNOP 9.1
6 METAR 8.7
我正在使用 grep 选择其中 NAME == METAR 的数据子集并找出出现次数:
ex_METAR <- Example[grep("METAR", Example$NAME), ]
nrow(ex_METAR)
我必须对NAME 的大量实例重复此操作,并希望通过在函数中使用它来加快此过程。但是我一定是做错了什么,因为我每次都会收到一条错误消息:
example_Function <- function (A, B, C) {
A[grep("B", A$C), ]
}
> example_Function(Example, "METAR", Example$NAME)
[1] NAME AIR
<0 rows> (or 0-length row.names)
我认为这是我描述“METAR”的方式,所以我尝试了仅使用 A 和 C 的函数并得到相同的错误。
example_Function <- function (A, C) {
A[grep("METAR", A$C), ]
}
example_Function(Example, Example$NAME)
我是否正在积极做错什么,或者这根本行不通?我以前从未尝试过以这种方式调整功能。或者也许一个函数是错误的方法?!提前致谢。
(不是 Aggregate a dataframe on a given column and display another column 的副本,它正在寻找具有最大值的子集。我需要对列中的单词进行子集并知道发生了多少次。)
【问题讨论】: