将具有两个参数的用户创建函数应用于多个变量

时间:2013-05-01 11:37:13

标签: r

我需要将用户创建的函数应用于数据集中选定的变量组合。

简单示例:

x<-c(1:10)
y<-c(10:1)
z<-rep(2,10)
w<-cbind(x,y,z)

myfun<-function (a,b){
c<-a*b
return(c)}

如何将myfun应用于 - 比如 - (x,y)和(x,z)?

1 个答案:

答案 0 :(得分:0)

使用myfun( w[,"x"] , w[,"y"] )myfun( w[,"x"] , w[,"z"] )$运算符不会处理您在上面发布的数据(我不知道您是否正在尝试这样做),因为它用于选择列表中的单个元素({{1实际上是矢量列表,可能是不同类的(例如data.framenumeric),而你拥有的是character。没有可从矩阵中选择的列表元素。矩阵是一个二维向量:

matrix

但我们可以根据需要将其转换为x <- 1:10 x # [1] 1 2 3 4 5 6 7 8 9 10 dim(x) <- c(5,2) x # [,1] [,2] #[1,] 1 6 #[2,] 2 7 #[3,] 3 8 #[4,] 4 9 #[5,] 5 10 colnames(x) <- c( "A" , "B" ) x$A Error in x$A : $ operator is invalid for atomic vectors x[,"A"] # [1] 1 2 3 4 5 并使用data.frame选择合适的

$