Мне нужно умножить столбцы в R data.frame. Я хочу сделать это на основе определенных шаблонов в именах столбцов. Это очень элементарная задача, но я изо всех сил стараюсь заставить ее работать с sapply() или некоторой связанной функцией. Это то, что я пробовал до сих пор.R умножение столбцов данных с помощью sapply
df <- data.frame("pA" = sample(1:100), "pB" = sample(1:100), "qA" = sample(1:100), "qB" = sample(1:100))
cols <- c("A","B")
multip <- function(df,col){
dfp <- df[which(names(df) %in% paste0("p",col))]
dfq <- df[which(names(df) %in% paste0("q",col))]
dfv <- dfp*dfq
setNames(dfv, paste0("v",col))
}
sapply(df, function(x) multip(x,cols))
Я могу заставить его работать, если я разбираю его и забываю о функциях и деталях, но это усложнит мою работу. Есть ли какое-то решение, которое сделает эту работу?
Используя 'df' на' sapply'/lapply', вы получают только один столбец для элемента списка – akrun