我有一个列表,其中16个元素都具有相同的变量(31列)。现在我想对这些变量做一些改变,并希望我可以对列表的每个元素做这些改变。简化后的列表如下所示
>list
>$`M2_2004`
> A B C
>1 2 1 3
>2 4 6 5
>3 6 4 0
...
>$`M2_2005`
> A B C
>70 5 9 1
>71 4 6 5
>72 2 5 8
...
例如,现在我想为列表的每个元素的B和C列添加两个前导数。它使用以下命令
sprintf("%04d", B)
,其中B是列。由于我对R很陌生,所以我会用一行单独的代码将此应用于每个元素的每列,但我希望通过在单个命令中执行此操作来加快此过程。
您可以使用lapply
将相同的函数应用于列表的每个元素,sapply
将相同的函数应用于相同数据帧的多个列:
lapply(your_list, function(x){
x[c("B", "C")] <- sapply(x[c("B", "C")], function(y) sprintf("%04d", y))
})