【发布时间】:2013-06-06 01:04:02
【问题描述】:
我是函数写作的新手,所以希望下面的内容有些意义。
我想创建一个带有一些参数的函数,这些参数将用于对 data.frame 进行子集化。我搜索了各个论坛,发现这些问答很有趣,但无法从讨论中回答我的问题:
我要创建的函数将采用 df、列名和与列名的行匹配的值。这是我的尝试,我认为这是错误的:
x <- data.frame("col1"=c("email","search","direct"),
"col2"=c("direct","email","direct"),
"col3"=c(10,15,27))
fun <- function(df,col,val) {
result <- subset(df, col==val)
return(result)
}
我想传入df,x。列名,比如说“col2”。一个值,比方说“电子邮件”。我这样做的尝试返回一个 0 长度的 df。
fun(x,"col2","email")
很明显我做错了什么...有人可以帮忙吗?
【问题讨论】:
-
您应该阅读this post 以了解更多关于在函数中使用
subset的问题。 -
我注意到您的代码中没有使用很多空格,例如
function(df,col,etc)->function(df, col, etc)或col==val->col == val。添加空格使您的代码更易于阅读,不那么令人生畏。 -
乔纳森,你也应该阅读this meta entry