我正在將此資料框轉換為具有單獨資料框的串列
df <- data.frame(1:10, 11:20, letters[seq(from=1, to=10)])
colnames(df) <- c(letters[seq(from=1,to=3)])
list.df <- lapply(df[,1:2], function(j) {
data.frame(j, df$c)
})
但我想將第一列的名稱設定為與串列的名稱相同(分別為 a 和 b )。在此示例中,在每個串列中,資料框的第一列始終為“j”。
我怎么能這樣???
另外,我怎樣才能將第二列從“df.c”更改為其他任何內容?
謝謝
uj5u.com熱心網友回復:
遍歷列號并對資料框進行子集化以獲得與原始列名相同的名稱。用于cbind系結c列并分配您選擇的名稱。
lapply(1:2, function(i) cbind(df[i], new_name = df$c))
#[[1]]
# a new_name
#1 1 a
#2 2 b
#3 3 c
#4 4 d
#5 5 e
#6 6 f
#7 7 g
#8 8 h
#9 9 i
#10 10 j
#[[2]]
# b new_name
#1 11 a
#2 12 b
#3 13 c
#4 14 d
#5 15 e
#6 16 f
#7 17 g
#8 18 h
#9 19 i
#10 20 j
uj5u.com熱心網友回復:
我們可以parent.frame()用來獲取當前列的索引并設定它的名字;
df <- data.frame(1:10, 11:20, letters[seq(from=1, to=10)])
colnames(df) <- c(letters[seq(from=1,to=3)])
list.df <- lapply(df[,1:2], function(j) {
name_index <- parent.frame()$i
name_to_set <- colnames(df[,1:2])[name_index]
subdf <- data.frame(j,the_name_you_wish = df$c)
colnames(subdf) <- gsub('j',name_to_set,colnames(subdf))
subdf
})
還設定了一個新名稱df$c
輸出;
$a
a the_name_you_wish
1 1 a
2 2 b
3 3 c
4 4 d
5 5 e
6 6 f
7 7 g
8 8 h
9 9 i
10 10 j
$b
b the_name_you_wish
1 11 a
2 12 b
3 13 c
4 14 d
5 15 e
6 16 f
7 17 g
8 18 h
9 19 i
10 20 j
uj5u.com熱心網友回復:
df <- data.frame(1:10, 11:20, letters[seq(from=1, to=10)])
colnames(df) <- c(letters[seq(from=1,to=3)])
library(dplyr, warn.conflicts = FALSE)
list.df <- lapply(1:2, function(j) {
df %>% select(!!!j, c)
})
list.df
#> [[1]]
#> a c
#> 1 1 a
#> 2 2 b
#> 3 3 c
#> 4 4 d
#> 5 5 e
#> 6 6 f
#> 7 7 g
#> 8 8 h
#> 9 9 i
#> 10 10 j
#>
#> [[2]]
#> b c
#> 1 11 a
#> 2 12 b
#> 3 13 c
#> 4 14 d
#> 5 15 e
#> 6 16 f
#> 7 17 g
#> 8 18 h
#> 9 19 i
#> 10 20 j
由reprex 包于 2022-02-25 創建(v2.0.1)
或者如果你想重命名
df <- data.frame(1:10, 11:20, letters[seq(from=1, to=10)])
colnames(df) <- c(letters[seq(from=1,to=3)])
library(dplyr, warn.conflicts = FALSE)
list.df <- lapply(1:2, function(j) {
df %>% select(!!!j, newname = c)
})
list.df
#> [[1]]
#> a newname
#> 1 1 a
#> 2 2 b
#> 3 3 c
#> 4 4 d
#> 5 5 e
#> 6 6 f
#> 7 7 g
#> 8 8 h
#> 9 9 i
#> 10 10 j
#>
#> [[2]]
#> b newname
#> 1 11 a
#> 2 12 b
#> 3 13 c
#> 4 14 d
#> 5 15 e
#> 6 16 f
#> 7 17 g
#> 8 18 h
#> 9 19 i
#> 10 20 j
由reprex 包于 2022-02-25 創建(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/433576.html
