提问人:ninaPeng 提问时间:11/9/2023 最后编辑:jay.sfninaPeng 更新时间:11/9/2023 访问量:36
如何使用 lapply 重命名列表中的单列
How to use lapply for rename single column in list
问:
# df = dataframe
# old.var.name = The name you don't like anymore
# new.var.name = The name you want to get
names(df)[names(df) == 'old.var.name'] <- 'new.var.name'
我想使用这种方式(或其他重命名方式?
names(df)[names(df) == 'old.var.name'] <- 'new.var.name'
l申请多层列表重命名单列,但我不知道 它如何迭代子列表(例如在 iris1、iris2 和 iris3 之后),让子列表将列“Species”重命名为“newSpecies”。
(如果你知道lapply处理多层列表/数据帧的相关教程,也可以推荐给我。
irisData <- list(iris1 = iris, iris2 = iris, iris3 = iris)
colnames(irisData$iris1)
#[1] "Sepal.Length" "Sepal.Width"
#[3] "Petal.Length" "Petal.Width"
#[5] "Species"
答:
1赞
jay.sf
11/9/2023
#1
你可以这样使用。lapply
> irisData <- lapply(irisData, \(x) {names(x)[names(x) == 'Species'] <- 'newSpecies'; x})
> lapply(irisData, head, 2)
$iris1
Sepal.Length Sepal.Width Petal.Length Petal.Width newSpecies
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
$iris2
Sepal.Length Sepal.Width Petal.Length Petal.Width newSpecies
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
$iris3
Sepal.Length Sepal.Width Petal.Length Petal.Width newSpecies
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
数据:
irisData <- list(iris1=iris, iris2=iris, iris3=iris)
评论
1赞
ninaPeng
11/9/2023
非常感谢您的帮助!
0赞
ninaPeng
11/9/2023
我可以问';x'是什么意思?我找不到任何相关的解释,或者我搜索了错误的关键字
0赞
jay.sf
11/9/2023
@ninaPeng 你可以把它看作是换行运算符,首先更改 x 的名称,然后返回整个 x。这有点速记,您也可以使用两行来代替。;
评论