Jam*_*son 9 coding-style r dataframe
我在R中有一个包含几个数据框的列表.我想迭代数据帧并计算数据帧中值的最小值/最大值.这是我现在的代码:
firstname = names(dats)[1]
xlim = c( min( dats[[firstname]][,xlab] ), max( dats[[firstname]][,xlab] ) )
for ( name in names(dats) ) {
xlim = c( min(xlim[1],dats[[name]][,xlab]), max(xlim[2],dats[[name]][,xlab]) )
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很难看,因为它需要很多代码来做一些非常简单的事情.在R中有更典型的方法吗?
Pra*_*ani 10
您可以使用从所有数据框中lapply提取xlab列,并unlist组合成一个向量,然后使用min或max:
xlab <- 'a'
dats <- list( df1 = data.frame(a=sample(1:3), b = sample(11:13)),
df2 = data.frame(a=sample(1:3), b = sample(11:13)))
> min( unlist( lapply( dats, '[', xlab ) ) )
[1] 1
> max( unlist( lapply( dats, '[', xlab ) ) )
[1] 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1876 次 |
| 最近记录: |