Я хочу применить модифицированный тест Манна Кендала к нескольким столбцам за один прогон с помощью Rstudio и сохранить результаты (т. е. значение p, тау, наклон сен и т. д.) каждого столбца в отдельном кадре данных/csv. Скрипт, который я использую, работает одновременно только с одним столбцом. У меня есть огромный набор данных. Потребуется время, чтобы запустить код для каждого столбца отдельно. Фиктивные данные приведены для справки.
Я использую следующий скрипт:
library(modifiedmk)
setwd('D:/Newfolder/mktest')
df <- read.csv("mktest.csv")
result <- mmky(df$A)
write.csv(result, "result.csv")
Заранее благодарим вас за любые рекомендации и предложения. Если это возможно на каком-либо другом языке программирования, пожалуйста, порекомендуйте его. Спасибо.
Для этого вам понадобится использовать lapply.
lapply(df, mmky)
Приведенный выше код применит функцию «mmky» ко всем столбцам во фрейме данных «df». Чтобы применить его к подмножеству столбцов, вы можете сделать
lapply(df[c()], mmky)
В c() включите все индексы столбцов, к которым вы хотите применить функцию «mmky», разделенные запятыми. Например, если вы хотите включить столбцы 1,2,3, вы должны сделать
lapply(df[c(1,2,3)], mmky)
Убедитесь, что вы загрузили пакет заранее, используя
library(modifiedmk)
df <-
tibble::tribble(
~Year, ~A, ~B, ~C, ~D,
2000L, 2L, 4L, 5L, 1L,
2001L, 3L, 2L, 1L, 5L,
2002L, 4L, 6L, 1L, 8L,
2003L, 7L, 2L, 9L, 3L,
2004L, 5L, 3L, 6L, 1L,
2005L, 7L, 3L, 9L, 3L,
2006L, 1L, 7L, 9L, 5L,
2007L, 1L, 6L, 3L, 9L,
2008L, 7L, 3L, 5L, 8L,
2009L, 1L, 6L, 4L, 3L,
2010L, 5L, 7L, 3L, 8L
)
library(modifiedmk)
library(dplyr)
library(purrr)
df %>%
select(A:D) %>%
map_df(mmky,.id = "variable")