назначать имена столбцам фреймов данных в списке
У меня есть список фреймов данных
# Create dummy data
df1<-data.frame( c(1,2,3),c(2,3,4))
df2<-data.frame(c(5,6,7),c(4,5,6))
# Create a list
l<-list(df1, df2)
Я хочу присвоить столбцам имена. В видеl[[1]][,1]
дает мне доступ к первому столбцу, я думал, что могу назначить 'names' в качестве имени первого столбца:
l<-lapply(l, function(x)names(x[[1]][,1]<-"names"))
Но это дает мне ошибку
Error in x[[1]][, 1] <- "names" :
incorrect number of subscripts on matrix
Изменить: добавлены некоторые исходные данные dput
dput(lapply(head(results1, 2), head, 2))
list(structure(c(1.27679607834331, 1.05090175857491), .Dim = 2:1, .Dimnames = list(
c("..a15.pdf", "..a17.pdf"), "x")), structure(c(2.096687569578,
2.19826038300833), .Dim = 2:1, .Dimnames = list(c("..a15.pdf",
"..a17.pdf"), "x")))
после попытки присвоить имя
dput(lapply(head(results1, 2), head, 2))
list(structure(c(1.27679607834331, 1.05090175857491), .Dim = 2:1, .Dimnames = list(
c("..a15.pdf", "..a17.pdf"), "names")), structure(c(2.096687569578,
2.19826038300833), .Dim = 2:1, .Dimnames = list(c("..a15.pdf",
"..a17.pdf"), "names")))
Выход:
results1[1]
[[1]]
names
..a15.pdf 1.27679608
..a17.pdf 1.05090176
..a18.pdf 1.51820192
..a21.pdf 2.30296037
..a2TTT.pdf 1.48568732

1 ответ
Вы можете подмножествоnames
фрейма данных:
l <- lapply(l, function(x) {names(x)[1] <-"names";x})
l
Вtidyverse
-
library(dplyr)
library(purrr)
l <- map(l, ~.x %>% rename_with(~'names', 1))
Из обновленных данных кажется, что у вас есть список матриц, и первый столбец на самом деле имеет имя rowname, которое вы можете преобразовать в столбец и назвать его.
lapply(results1, function(x) {
mat <- cbind.data.frame(names = rownames(x), x)
rownames(mat) <- NULL
mat
})
#[[1]]
# names x
#1 ..a15.pdf 1.28
#2 ..a17.pdf 1.05
#[[2]]
# names x
#1 ..a15.pdf 2.1
#2 ..a17.pdf 2.2
Другие вопросы
- Создайте сводную таблицу двух категориальных и числовых переменных1 ответ
У меня есть следующий гипотетический фреймворкRegion <- c("District A", "District B","District A","District A","District B") Gender <- c("Male","Male","Female", "Male","Female") Age <- c(20, ...
- Создайте цикл для генерации имен столбцов в большом списке1 ответ
Я хотел бы создать цикл, чтобы изменить имена столбцов, как показано:a <- c("day", "month", "year", "flow") У меня есть большой список из 6937 элементов, которые мне удалось импортировать в R:library(tidyverse) library(readtext) txt_files_ls <- paste...
- Построение лаговой матрицы в R1 ответ
Каждый год несколько человек переезжают в деревню. Это представлено следующим вектором:x <- c(304, 213, 688, 400, 122, 449, 143, 90) Ежегодно из села уезжает 10% людей. Доля людей из каждой когорты, остающихся через определенное количество лет (за 10 лет):decay <- (1-0.1)^(0:10) Используя R, к...

"Завидую тестировщикам: все хотят с ними дружить."
lengths(l)
иclass(l[[1]])
Ronak Shah