以下代码就是一个例子。我的函数testf
在单独调用NAME
或SRC
时工作正常但如果我尝试通过向量执行此操作则无法正常工作 - 我认为这是有道理的。所以我冒昧地把它变成一个循环和权利(从我所理解的)这应该有效,但它没有。它产生一个输出,但它显然是错误的,我不知道它为什么这样做。我错误地应用了这个吗?感谢
NAME <- c("SYNOP", "SYNOP", "METAR", "METAR", "SYNOP", "METAR")
AIR <- c(6.7, 8.3, 9.2, 8.9, 9.1, 8.7)
SRC <- c("WMO", "WMO", "WMO", "ID_3", "ID_3", "WMO")
Example <- data.frame(NAME, AIR, SRC)
require(dplyr)
testf <- function(j) {
Example %>% group_by((j)) %>% summarize(Count=n())
}
testf(NAME)
testf(SRC)
vector <- c("NAME", "SRC")
testf(vector)
for (v in vector) {
testg <- testf(v)
print(testg)
}
答案 0 :(得分:2)
为了能够将字符串传递给testf
并将其传递给group_by
,您必须使用group_by_
,testf <- function(j) {
Example %>% group_by_(.dots = j) %>% summarize(Count=n())
}
# examples:
testf("NAME")
testf(c("NAME", "AIR"))
for (v in c("NAME", "SRC")) {
print(testf(v))
}
:< / p>
function replace_text_wps($text){
$dir = plugin_dir_path( __FILE__ );
$file= $dir."bad2.list";
$badlist = file($file, FILE_IGNORE_NEW_LINES);
$replacement = "[CENSORED]";
$badlist = array_map(function($v) { return "\b". $v ."\b"; }, $badlist);
foreach($badlist as $f) {
$text = preg_replace("/".$f."/u", $replacement, $text);
return $text;
}
请参阅此处,了解dplyr包中使用的非标准评估的解释:standard evaluation version
答案 1 :(得分:0)
尝试使用:
testf <- function(j) {
Example %>% group_by((deparse(j))) %>% summarize(Count=n())
}