基于列表元素将新变量添加到数据集中

时间:2017-05-05 15:38:05

标签: r

我有一个列表变量X,我想根据X的元素和长度在数据集中添加一个新的分类变量。例如,假设

 X    
    [[1]]
    [[1]]$In
    [1] 3 4 5 6

    [[2]]
    [[2]]$In
    [1] 7 8 9

    [[3]]
    [[3]]$In
    [1] 11 12 13
library(stats)
library(graphics)
attach(cars)
cars$c<-NA

现在我想制作一个分类变量(c),对于数据集的行号或主题号等于3,4,5,c为1,对于等于7的行,8,9然后c将是2,如果数据集的行号等于11,12,13那么c将是3.我想知道我该怎么做。我需要一个循环函数,因为在我的实际数据中,X的长度可能在20左右。这意味着c将有20个类别,而一些单元格将是NA。我需要像

这样的东西
In  c
3   1
4   1
5   1
6   1
7   2
8   2
9   2
11  3
12  3
13  3

然后我需要将c列添加到汽车数据集(在R中可用)中,如果In的值与行号匹配,那么我们将包含c的值,否则c将是NA。

1 个答案:

答案 0 :(得分:0)

app.route('/user/:name')
 .all((req, res) => { ... console log here })
 .get((req, res) => { ... })

这构造了一个data.frame。第一个函数df <- data.frame("In" = unlist(X), "c" = rep(seq_len(length(X)), sapply(X, lengths))) 将嵌套列表转换为自动向量。第二个元素,通过内部列表元素中向量中包含的元素数重复嵌套列表的元素位置。

unlist

数据

df
  In c
1   3 1
2   4 1
3   5 1
4   7 2
5   8 2
6   9 2
7  11 3
8  12 3
9  13 3