R:正确使用数据帧作为函数的参数
我正在练习在R中使用apply函数,因此我正在编写一个简单的函数来应用于数据帧 我有一个有两列的数据框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
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