Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:正确使用数据帧作为函数的参数_R_Function - Fatal编程技术网

R:正确使用数据帧作为函数的参数

R:正确使用数据帧作为函数的参数,r,function,R,Function,我正在练习在R中使用apply函数,因此我正在编写一个简单的函数来应用于数据帧 我有一个有两列的数据框 V1 V2 1 3 2 4 我决定做一些基本的算术运算,并在第三列给出答案,具体来说,我想把第一列乘以2,第二列乘以3,然后求和 V1 V2 V3 1 3 11 2 4 16 我是这么想的: mydf <- as.data.frame(matrix(c(1:4),ncol=2,nrow=2)) some_f

我正在练习在R中使用apply函数,因此我正在编写一个简单的函数来应用于数据帧

我有一个有两列的数据框

 V1    V2
 1     3
 2     4
我决定做一些基本的算术运算,并在第三列给出答案,具体来说,我想把第一列乘以2,第二列乘以3,然后求和

 V1    V2    V3
 1     3     11
 2     4     16
我是这么想的:

mydf <- as.data.frame(matrix(c(1:4),ncol=2,nrow=2))
some_function <- function(some_df) {some_df[,1]*2 +   
                                    some_df[,2]*3}
mydf <- apply(mydf ,2, some_function)
mydf有三件事不对:

1) 将“循环”应用于每列或每行的向量,因此您只需寻址名称[1],而不是[,1]
2) 您需要按行边距=1而不是2运行
3) 您需要cbind结果,因为apply不追加,所以您正在覆盖向量

mydf <- as.data.frame(matrix(c(1:4),ncol=2,nrow=2))

some_function <- function(some_df) {some_df[1]*2 +   
                                      some_df[2]*3}

mydf <- cbind(mydf,V3=apply(mydf ,1, some_function))

#  V1 V2 V3
#1  1  3 11
#2  2  4 16

mydf您是选择乘法作为示例还是您的实际任务?它只是一个示例谢谢!这很有帮助。
mydf$V3<-mydf[,1]*2 + mydf[,2]*3