Умножение определенного элемента в кадре данных, учитывая, что определенный элемент совпадает с именем файла CSV в R - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь решить проблемы с большими данными, и это включает в себя 2 разных файла CSV. Если имя файла CSV1 соответствует определенному элементу в CSV2, я умножу каждый элемент CSV1 на этот определенный элемент CSV2. Я использую R. 1010 * таким образом 0,1. 0,4 и 0,5 CSV1 должны быть умножены на 0,08

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете получить все имена файлов, для которых вы хотите применить это, используя list.files, l oop для каждого имени файла, прочитать его, match это с csv2 dataframe и получить соответствующее значение для умножения.

filenames <- list.files('path/of/files', full.names = TRUE, pattern = "\\.csv$")

list_df <- lapply(filenames, function(x) transform(read.csv(x, header = FALSE), 
             V3 = V3 * csv2$V3[match(
                  tools::file_path_sans_ext(basename(x)), csv2$V2)]))

Это вернет вам обновленный список информационных фреймов, к которым можно получить доступ, например, list_df[[1]], list_df[[2]] et c.

, где csv2 равно

csv2 <- structure(list(V1 = structure(c(1L, 3L, 2L), .Label = c("hey", 
"mat", "sol"), class = "factor"), V2 = c(318L, 497L, 498L), V3 = c(0.08, 
0.22, 0.06)), class = "data.frame", row.names = c(NA, -3L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...