从R dataFrame构建哈希映射

时间:2016-02-20 21:59:45

标签: r dataframe

我有一个带有以下内容的pandas DataFrame df:

Serial N       voltage           
   B              12            
   B              10            
   C              12            
   C              40            
   .               .             
   AB             10             
   AB             13             

我想从这个dataFrame构建一个hashmap,其中键是序列号(唯一),值是与该序列号的电压相对应的列表。例如,我想要像

这样的东西
df[[B]]=[12,10] or df[[c]]=[12,40].

我怎么能在R?

3 个答案:

答案 0 :(得分:2)

你只需要进行一些基本的转换(全部在基础R中):

$products = Category::find($id)->products();

答案 1 :(得分:2)

这是另一种基础R方法:

Hash <- sapply(unique(Df$Key), function(x) {
    Df[Df$Key == x, 2]
}, simplify = FALSE)

Df[Df$Key %in% c("A", "B"),]
#   Key Value
# 1   A    61
# 2   A    52
# 3   B    46
# 4   B    53

Hash[["A"]]
#[1] 61 52]

Hash[["B"]]
#[1] 46 53

数据:

Df <- data.frame(
    Key = sort(rep(LETTERS, 2)),
    Value = rpois(52, 50)
)

答案 2 :(得分:0)

df <- data.frame(s=sample(LETTERS[1:2], 5, T), v=sample(10:40, 5), 
                 stringsAsFactors=FALSE)
h <- aggregate(v~s, data=df, FUN=c)
setNames(h[,2], h[,1])

> df
  s  v
1 A 29
2 B 22
3 A 33
4 B 26
5 A 37

> setNames(h[,2], h[,1])
$A
[1] 29 33 37

$B
[1] 22 26