У меня есть пример фрейма данных, который выглядит следующим образом (мой полный фрейм данных имеет «d» плюс 57 элементов):
d <- seq(0, 100, 0.5)
Fe <- runif(201, min = 0, max = 1000)
Ca <- runif(201, min = 0, max = 1000)
Zr <- runif(201, min = 0, max = 1000)
Ti <- runif(201, min = 0, max = 1000)
Al <- runif(201, min = 0, max = 1000)
example <- data.frame(d, Fe, Ca, Zr, Ti, Al)
Ratio_Elements <- c("Fe", "Ti", "Zr", "d") #this subset of the
dataframe is user defined
Detrital_Divisor <- "Zr"
Detrital_Divisor может меняться в зависимости от ввода пользователя, но всегда будет столбцомв «примере» данных.Я хотел бы разделить все оставшиеся столбцы на столбец Detrital_Divisor, предпочтительно с использованием канала.Прямо сейчас у меня есть:
Example_Ratio <- example %>%
select (Ratio_Elements) #to subset to the user selected elements
mutate_all(./Detrital_Divisor)
Но я получаю ошибку:
Error in Ops.data.frame(., Detrital_Divisor) :
‘/’ only defined for equally-sized data frames.
Я также пытался:
Example_Ratio <- example %>%
select (Ratio_Elements)
sweep(., Detrital_Divisor, MARGIN = 1, '/')
на основе аналогичных вопросов, которые былиспросил на этом форуме, но я просто не могу заставить его работать.Я получаю сообщение об ошибке
`Error in Ops.data.frame(x, aperm(array(STATS, dims[perm]), order(perm)), :
list of length 206340 not meaningful.`
Я знаю, что этот вопрос несколько повторяется, но другие ответы, которые я нашел, не работают в моей ситуации.Весь мой фрейм данных содержит 57 элементов, поэтому написание кода для разделения каждого столбца по отдельности будет очень длинным.
Заранее благодарен за любые советы.