我有一个数据框:
df <- data.frame( a = 1:5, b = 1:5, c = 1:5, d = as.factor(1:5))
我想编写一个函数,将a,b或c列中的一个作为参数,并列为d列的一个因子,并仅返回列a,b或c的值,列d的因子值。
我尝试了以下代码:
fun1 <- function(x,y) {
u <- x[data$d == "y"]
return(u)
}
我不断回复numeric(0)
作为函数的输出。当我在function()
环境之外尝试类似的代码时,它似乎工作正常。任何帮助,将不胜感激。
答案 0 :(得分:1)
可能是重复但我不知道如何在带有标签的项目的大海捞针中找到它:data.frame
,indexing
,columns
,values
。最佳做法是传递“数据”以及搜索词。 (调用对象df1
而不是df
。)
fun1 <- function(dfrm, col,val) {
u <- dfrm[dfrm$d == val , col]
return(u)
}
fun1(df1, 'b', 3)
#[1] 3