将新元素(标签)添加到R

时间:2019-03-28 04:34:35

标签: r

我有一个使用GET方法(API调用)生成的数据集。

dataset<-GET('www.ttttyyyyzzzz.com')
contents <- content(dataset)

我通过使用以下命令提取数据 contents<-contents$response$data。这将创建一个列表。清单清单清单。

这是列表在RStudio上的外观。 enter image description here

就将其视为数据框而言,我有8行42列。我真正想做的是创建一个名为“ Year”的第43列,并将其添加到8个高级元素的每一个中。 因此,对于我所有的8个元素,该列表现在都是“ 43个列表”。

@Ronak要求发送dput-为了进行此练习,我创建了一个模型。使用以下命令,我想在我的主列表中添加一个名为'p'的第4个元素,所有列表的通用值都为25。

structure(list(m = 1, n = 2, o = 3, structure(list(m = 3, n = 4, 
    o = 5), .Names = c("m", "n", "o")), structure(list(m = 6, 
    n = 9, o = 8), .Names = c("m", "n", "o"))), .Names = c("m", 
"n", "o", "", ""))

3 个答案:

答案 0 :(得分:3)

如果我的目标很好,我们可以使用:

 plyr::llply(contents,function(x) rlist::list.append(x,p=25))

答案 1 :(得分:2)

因此我们可以通过

添加一个命名列表元素
lapply(lst, function(x) c(x, p = 25))


#$m
#    p 
# 1 25 

#$n
#    p 
# 2 25 

#$o
#    p 
# 3 25 

#[[4]]
#[[4]]$m
#[1] 3

#[[4]]$n
#[1] 4

#[[4]]$o
#[1] 5

#[[4]]$p
#[1] 25
#...
#...

或与purrr::map

purrr::map(lst, ~ c(., p = 25))

数据

lst <- structure(list(m = 1, n = 2, o = 3, structure(list(m = 3, n = 4, o = 
5), .Names = c("m", "n", "o")), structure(list(m = 6, n = 9, o = 8), .Names = 
c("m", "n", "o"))), .Names = c("m", "n", "o", "", ""))

答案 2 :(得分:1)

这里是base R

的一个选项
Map(c, lst1, p = 25)
#$m
#    p 
# 1 25 

#$n
#    p 
# 2 25 

#$o
#    p 
# 3 25 

#[[4]]
#[[4]]$m
#[1] 3

#[[4]]$n
#[1] 4

#[[4]]$o
#[1] 5

#[[4]]$p
#[1] 25

#...

数据

lst1 <-  structure(list(m = 1, n = 2, o = 3, structure(list(m = 3, n = 4, o = 
 5), .Names = c("m", "n", "o")), structure(list(m = 6, n = 9, o = 8), .Names = 
  c("m", "n", "o"))), .Names = c("m", "n", "o", "", ""))