r - 如何抑制函数在 R 中返回 "Null"?

标签 r return

我编写了一个 R 函数来返回满足特定要求的行,但是我遇到了输出格式问题。

例如,返回具有特定值的行:

xx.1 <- data.frame(aa= 1:5, bb = c("AA","BB","CC","DD","EE"))
xx.2 <- c("AA","DD")
ff_in <- function(x,y){
  if (toupper(x[2]) %in% y) {return(x)}
}
apply(xx.1,1,ff_in,xx.2)

但是,输出看起来像:
[[1]]
aa   bb 
"1" "AA" 

[[2]]
NULL

[[3]]
NULL

[[4]]
aa   bb 
"4" "DD" 

[[5]]
NULL

如何抑制 R 返回 null,并返回类似这样的东西?
aa bb
"1" "AA" 
"4" "DD" 

最佳答案

这样做会不会更容易:

xx.1[ toupper(xx.1[[2]]) %in% xx.2 , ]

如果您在函数中需要它,我相信这会更快,并且也不会有将数据帧强制转换为字符矩阵的不良副作用。
exncol <- function(df, coln, choices) df[ toupper(df[[coln]]) %in% choices , ]
exncol(xx.1, 2, xx.2)
  aa bb
1  1 AA
4  4 DD

关于r - 如何抑制函数在 R 中返回 "Null"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10195586/

相关文章:

r - stopifnot 更好的错误信息?

ios - 快速条件函数返回

javascript - return 如何处理 javascript 中的多个变量?

r - strtoi 无法将字符串转换为整数,返回 NA

r - 无法在 R 中安装 rgbif 包

r - Knit 卡在 system() 调用上

c++ - 流上的 >> 运算符如何返回对自身的引用

r - 如何使用 R 从 Github 下载整个存储库?

Java:返回一个类User,与更改它相同吗?

从另一个文件返回函数时的 Python 问题