R - 使用现有名称在 for 循环内分配
R - assign inside a for loop using existing name
我想使用 for 循环对数据框列表中的每个元素执行相同的操作。然后我想使用元素的原始名称分配这些名称。我想知道如果我只是重新分配相同的名称,或者分配带有后缀或前缀的旧名称,该怎么做。
我可以通过使用 paste0 添加新名称来实现,例如:
# load example data frames and add to list
data("iris")
data("cars")+
list_df <- list(iris, cars)
# create new list for manipulated data frames. Using head() as an example.
list_head < - list()
# for loop to take head of each data frame in list_df, assign iterative name and add to list_head
for (i in 1:length(list_df){
temp <- head(list_df[[i]])
new_list[[paste0("df_head",i)]] <- temp
}
我希望能够在基于迭代的循环中分配一个变量,其中分配的名称与旧名称相同,and/or 旧名称加上 suffix/prefix ,例如“cars_head”。添加到列表部分并不重要,但如果也能直接完成,那就太好了。
我认为这是一种更 R-like 的方法...
data("iris")
data("cars")
library(tibble)
#create a list with names of the elements
list_df <- tibble::lst(iris, cars)
#get head of list's elements
new_list <- lapply(list_df, head)
#new names
names(new_list) <- paste0(names(list_df), "_head")
new_list
# $iris_head
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa
# 3 4.7 3.2 1.3 0.2 setosa
# 4 4.6 3.1 1.5 0.2 setosa
# 5 5.0 3.6 1.4 0.2 setosa
# 6 5.4 3.9 1.7 0.4 setosa
#
# $cars_head
# speed dist
# 1 4 2
# 2 4 10
# 3 7 4
# 4 7 22
# 5 8 16
# 6 9 10
我想使用 for 循环对数据框列表中的每个元素执行相同的操作。然后我想使用元素的原始名称分配这些名称。我想知道如果我只是重新分配相同的名称,或者分配带有后缀或前缀的旧名称,该怎么做。
我可以通过使用 paste0 添加新名称来实现,例如:
# load example data frames and add to list
data("iris")
data("cars")+
list_df <- list(iris, cars)
# create new list for manipulated data frames. Using head() as an example.
list_head < - list()
# for loop to take head of each data frame in list_df, assign iterative name and add to list_head
for (i in 1:length(list_df){
temp <- head(list_df[[i]])
new_list[[paste0("df_head",i)]] <- temp
}
我希望能够在基于迭代的循环中分配一个变量,其中分配的名称与旧名称相同,and/or 旧名称加上 suffix/prefix ,例如“cars_head”。添加到列表部分并不重要,但如果也能直接完成,那就太好了。
我认为这是一种更 R-like 的方法...
data("iris")
data("cars")
library(tibble)
#create a list with names of the elements
list_df <- tibble::lst(iris, cars)
#get head of list's elements
new_list <- lapply(list_df, head)
#new names
names(new_list) <- paste0(names(list_df), "_head")
new_list
# $iris_head
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa
# 3 4.7 3.2 1.3 0.2 setosa
# 4 4.6 3.1 1.5 0.2 setosa
# 5 5.0 3.6 1.4 0.2 setosa
# 6 5.4 3.9 1.7 0.4 setosa
#
# $cars_head
# speed dist
# 1 4 2
# 2 4 10
# 3 7 4
# 4 7 22
# 5 8 16
# 6 9 10