Импортируйте таким образом, чтобы сохранить ваши имена:
library(tidyverse)
ListofData <- map(set_names(temp), read_csv)
затем мы модифицируем вашу функцию, добавив имя в качестве второго параметра, который будет использоваться через imap
, поэтому мы также избавимся от первой строки:
tagging <- function(H, namey){
namey<- str_sub(namey,1, -5) #drop the .csv
H$date<-substring(namey,1, 6) # get the first 6 characters containing the date
H$selection<- word(namey, -1) #get the last word
H$treatment<- word(namey, -2) # get the second last word
H$REP<- word(namey, -3) # get the third last word
return(H)
}
Затем imap
передает данные в аргумент H
и имена элементов в аргумент namey
.
ListofData.tagged <- imap(ListofData, tagging)
базовый перевод R
ListofData <- lapply(setNames(temp,temp), read.csv)
ListofData.tagged <- Map(tagging, ListofData, names(ListofData))
Или, если вам нет дела до именования элементов ListofData
, вы можете сделать это непосредственно Map(tagging, ListofData, temp)
(сохраняя новое определение tagging
).