从R中的几个csv文件中提取值

时间:2016-06-15 11:20:20

标签: r

我有一个文件夹,其中转储了几个csv文件。文件名可以是Product_1234.csv Product_2121.csv等

这些表格中的列名称不同。但是,所有工作表中始终都有一列“Profit”。因此,Product_1234.csv和Product_2121.csv都将Profit作为列。

我有另一个csv,即my_csv.csv文件,其中的数据格式如下

Product Cost
1234    12
2345    10
2121    15

我希望在my_csv中有另一个名为Profit的列。此列应该具有前面讨论的多个工作表中的利润。例如,要获得产品1234的利润,我们必须搜索具有“1234”的文件名并从该文件中获取利润。我不确定这是否可以在R中完成。请帮助。

输出文件,即my_csv将是这样的

 Product Cost Profit 
 1234    12    3
 2121    15    1

1 个答案:

答案 0 :(得分:1)

像这样的东西会这样做

# Dummy data - read this in from your my_csv.csv file
my_csv_data = data.frame(
    Product = c(1234, 2121),
    Cost = c(12, 15)    
)

profits <- c()

for(productNumber in my_csv_data$Product) {
    fileName <- paste0("Product_", productNumber, ".csv")

    productData <- read.csv(fileName)

    profits <- c(profits, productData$Profit[1])
}

my_csv_data$Profit <- profits

肯定有更快的方法可以做到这一点,但如果性能问题,这可以让你从一个开始。