我有f这是3个数据帧的列表。 f的摘要如下
> summary(f)
Length Class Mode
[1,] 4 data.frame list
[2,] 4 data.frame list
[3,] 4 data.frame list
进一步
> str(f)
List of 3
$ :'data.frame': 2557 obs. of 4 variables:
..$ Date : Factor w/ 2557 levels "2003-01-01","2003-01-02",..: 1 2 3 4 5 6 7 8 9 10 ...
..$ sulfate: num [1:2557] NA NA 3.82 NA NA NA NA NA 3.1 NA ...
..$ nitrate: num [1:2557] NA NA 0.494 NA NA NA NA NA 0.452 NA ...
..$ ID : int [1:2557] 70 70 70 70 70 70 70 70 70 70 ...
$ :'data.frame': 1826 obs. of 4 variables:
..$ Date : Factor w/ 1826 levels "2006-01-01","2006-01-02",..: 1 2 3 4 5 6 7 8 9 10 ...
..$ sulfate: num [1:1826] NA NA NA NA NA NA NA NA NA NA ...
..$ nitrate: num [1:1826] NA NA NA NA NA NA NA NA NA NA ...
..$ ID : int [1:1826] 71 71 71 71 71 71 71 71 71 71 ...
$ :'data.frame': 2191 obs. of 4 variables:
..$ Date : Factor w/ 2191 levels "2001-01-01","2001-01-02",..: 1 2 3 4 5 6 7 8 9 10 ...
..$ sulfate: num [1:2191] NA NA NA NA NA NA NA NA NA NA ...
..$ nitrate: num [1:2191] NA NA NA NA NA NA NA NA NA NA ...
..$ ID : int [1:2191] 72 72 72 72 72 72 72 72 72 72 ...
现在f [1]是列表的第一个数据帧。我想将它分配,以便我只得到硫或硝酸盐柱。因此我传递代码
pol<-"nitrate"
f[1][[pol]] which failed. i tried many other ways like,f[1][,pol],f[1][,nitrate] etc.
它们都不起作用。请帮助我。我完全迷失了。
答案 0 :(得分:0)
我们可以使用[[
从list
中提取元素。如果我们需要第一个元素,它将是f[[1]]
并且它是data.frame
,因此按列名称进行子集化将获得data.frame
的列并返回data.frame
。
f[[1]]['sulfate']
如果我们需要返回vector
,
f[[1]][['sulfate']]
或
f[[1]][, 'sulfate']
可以使用。
f[1]
仍是list
。我们可以查看str(f[1])
和str(f[[1]])
来了解结构。