如何将列表分为键和值两部分?

时间:2019-10-22 09:07:45

标签: r dictionary

我有一个csv文件,其中列出了水果及其每月产量。每个水果在csv中占一行,并且每个月都有自己的列。我将其读入R并用逗号分隔每一列。

csv看起来像这样:

Apple, 312, 113, 177, 151, 31, 3
Orange, 613, 611, 687, 594, 431, 399
Pear, 23, 11, 7, 5, 3, 1 
Strawberry, 87, 91, 102, 111, 150, 165
Mango, 76, 76, 81, 92, 101, 97 

我使用了一个名为readLines的函数,将csv读取为List格式,如下所示:

df <- readLines('fruits.csv', sep = ",") 

因此,总而言之,现在我想通过为水果赋予“键”属性,并为产量(数字)赋予值,以类似于字典的方式来分隔水果的名称和其产量。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

R的列表基本上像字典一样起作用。这样的事情可能对您有用,在这里,我首先读取CSV作为数据帧,split行,然后遍历结果列表,删除水果名称并将剩余的每月值转换为数字向量:

df <- read.csv("fruits.csv", header = F)
lapply(split(df, df$V1), function(x) as.numeric(x[-1]))

上面的代码将返回一个列表,其中水果名称是列表元素的名称,每月值是整数向量:

$Apple
[1] 312 113 177 151  31   3

$Mango
[1]  76  76  81  92 101  97

$Orange
[1] 613 611 687 594 431 399

$Pear
[1] 23 11  7  5  3  1

$Strawberry
[1]  87  91 102 111 150 165