我正在处理来自外部源的一些数据,这些数据的变量名之一(“伪ID”)带有空格。我正在尝试使用purrr :: map在所有数据集中更改此变量名称,但是R似乎在识别此变量时遇到问题。我不想一直一一更改变量名...我想知道是否有人可以找到解决方案?
library(tidyverse)
# Mock data:
set.seed(1)
sampledata<- data.frame(
ID = sample(1:2),
name = sample(letters, 2, replace = TRUE))
colnames(sampledata)[1] <- "Pseudo ID"
# List of mock data:
datalist <- list(sampledata, sampledata)
# Set name in each dataset in the list using map
map(datalist, set_names, nm="PatientID") # BUT HOW CAN I RENAME A SPECIFIC COLUMN - 'Pseudo ID'
答案 0 :(得分:1)
您可以在map
中使用set_names
和purrr
。
set.seed(1)
sampledata<- data.frame(ID = sample(1:2), name = sample(letters, 2, replace = TRUE))
colnames(sampledata)[1] <- "Pseudo ID"
datalist <- list(sampledata, sampledata)
library(purrr)
map(datalist, ~ set_names(.x, nm = replace(
names(.x), names(.x) == "Pseudo ID", "PatientID"
)))
#[[1]]
# PatientID name
#1 1 o
#2 2 x
#[[2]]
# PatientID name
#1 1 o
#2 2 x
如果要分配其他名称,请使用map2
new_id_names <- c("PatientID_1", "PatientID_2")
map2(.x = datalist, .y = new_id_names, ~ set_names(.x, nm = replace(
names(.x), names(.x) == "Pseudo ID", .y
)))