我正在尝试解决大数据问题,这涉及2个不同的CSV文件。如果CSV1的文件名与CSV2中的某个元素匹配,我将CSV1的每个元素乘以CSV2的那个元素。我正在使用R。
让我们将它们作为数据样本:
CSV1文件名是:318
01/01/2005 00:00 0.1
01/01/2005 01:00 0.4
01/01/2005 02:00 0.5
CSV2:
hey 318 0.08
sol 497 0.22
mat 498 0.06
因此0.1。 CSV1的0.4和0.5必须乘以0.08
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]]
等进行访问。
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))