按名称将数据帧收集到列表中时,参数 "nm" 丢失错误
argument "nm" is missing error while gathering data frames into a list by name
我尝试使用 Put multiple data frames into list (smart way) 中给出的建议,但仍然出现以下错误:
argument "nm" is missing, with no default
我不确定为什么会这样。我尝试搜索错误但找不到任何内容( 在评论中显示此错误但没有解释)。
我有以下 data.frames(数据无关紧要,这里只有名称):
#create data.frames
p1sfdf1=data.frame(a=(1:10),b=(2:11),c=(3:12))
p2sfdf1=data.frame(a=(1:10),b=(2:11),c=(3:12))
p1sfdf2=data.frame(a=(1:10),b=(2:11),c=(3:12))
p2sfdf2=data.frame(a=(1:10),b=(2:11),c=(3:12))
p1sfdf3=data.frame(a=(1:10),b=(2:11),c=(3:12))
p2sfdf3=data.frame(a=(1:10),b=(2:11),c=(3:12))
p1sfdf4=data.frame(a=(1:10),b=(2:11),c=(3:12))
#note no p2sfdf4 here
p1sfdf5=data.frame(a=(1:10),b=(2:11),c=(3:12))
p2sfdf5=data.frame(a=(1:10),b=(2:11),c=(3:12))
#combine data.frames into a list of data.frames
l.sf=setNames(lapply(ls(pattern="p[1-2]+"),function(x) get(x)))
我想将 data.frames 分组到 data.frames 的列表中。我尝试根据模式“p”进行分组,然后是 1 或 2,但我不确定如何在模式中证明这一点。我猜这就是我的错误来源,但我不确定如何解决它。
您没有将任何名称传递给 setNames
:
l.sf <- lapply(ls(pattern="p[1-2]+") ,function(x) get(x))
l.sf <- setNames(l.sf, ls(pattern="p[1-2]+"))
str(l.sf)
#> List of 9
#> $ p1sfdf1:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p1sfdf2:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p1sfdf3:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p1sfdf4:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p1sfdf5:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p2sfdf1:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p2sfdf2:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p2sfdf3:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p2sfdf5:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
由 reprex package (v0.3.0)
于 2020-07-30 创建
我们可以简单地得到 name
d list
和 mget
lst1 <- mget(ls(pattern = "^p[1-2]+")
我尝试使用 Put multiple data frames into list (smart way) 中给出的建议,但仍然出现以下错误:
argument "nm" is missing, with no default
我不确定为什么会这样。我尝试搜索错误但找不到任何内容(
我有以下 data.frames(数据无关紧要,这里只有名称):
#create data.frames
p1sfdf1=data.frame(a=(1:10),b=(2:11),c=(3:12))
p2sfdf1=data.frame(a=(1:10),b=(2:11),c=(3:12))
p1sfdf2=data.frame(a=(1:10),b=(2:11),c=(3:12))
p2sfdf2=data.frame(a=(1:10),b=(2:11),c=(3:12))
p1sfdf3=data.frame(a=(1:10),b=(2:11),c=(3:12))
p2sfdf3=data.frame(a=(1:10),b=(2:11),c=(3:12))
p1sfdf4=data.frame(a=(1:10),b=(2:11),c=(3:12))
#note no p2sfdf4 here
p1sfdf5=data.frame(a=(1:10),b=(2:11),c=(3:12))
p2sfdf5=data.frame(a=(1:10),b=(2:11),c=(3:12))
#combine data.frames into a list of data.frames
l.sf=setNames(lapply(ls(pattern="p[1-2]+"),function(x) get(x)))
我想将 data.frames 分组到 data.frames 的列表中。我尝试根据模式“p”进行分组,然后是 1 或 2,但我不确定如何在模式中证明这一点。我猜这就是我的错误来源,但我不确定如何解决它。
您没有将任何名称传递给 setNames
:
l.sf <- lapply(ls(pattern="p[1-2]+") ,function(x) get(x))
l.sf <- setNames(l.sf, ls(pattern="p[1-2]+"))
str(l.sf)
#> List of 9
#> $ p1sfdf1:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p1sfdf2:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p1sfdf3:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p1sfdf4:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p1sfdf5:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p2sfdf1:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p2sfdf2:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p2sfdf3:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
#> $ p2sfdf5:'data.frame': 10 obs. of 3 variables:
#> ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
#> ..$ b: int [1:10] 2 3 4 5 6 7 8 9 10 11
#> ..$ c: int [1:10] 3 4 5 6 7 8 9 10 11 12
由 reprex package (v0.3.0)
于 2020-07-30 创建我们可以简单地得到 name
d list
和 mget
lst1 <- mget(ls(pattern = "^p[1-2]+")