Я пытаюсь разбить вектор символа на три разных вектора внутри кадра данных.Назначение результатов strsplit для нескольких столбцов кадра данных
Мои данные что-то вроде:
> df <- data.frame(filename = c("Author1 (2010) Title of paper",
"Author2 et al (2009) Title of paper",
"Author3 & Author4 (2004) Title of paper"),
stringsAsFactors = FALSE)
И я хотел бы разделить эти 3 информации (authors
, year
, title
) в трех разных столбцах, так что было бы:
> df
filename author year title
1 Author1 (2010) Title1 Author1 2010 Title1
2 Author2 et al (2009) Title2 Author2 et al 2009 Title2
3 Author3 & Author4 (2004) Title3 Author3 & Author4 2004 Title3
Я использовал strsplit
для разбивки каждого filename
в векторе из 3 элементов:
df$temp <- strsplit(df$filename, " \\(|\\) ")
Но теперь я не могу найти способ поместить каждый элемент в отдельный столбец. Я могу получить доступ к конкретной информации, например, что:
> df$temp[[2]][1]
[1] "Author2 et al"
но не могу найти, как поместить его в других столбцах
> df$author <- df$temp[[]][1]
Error
Отлично! В конце я сделал это: 'df <- cbind (df, t (data.frame (strsplit (df $ filename," \\ (| \\) ")))); colnames (df) [colnames (df) == "1"] <- "author"; colnames (df) [colnames (df) == "2"] <- "year"; colnames (df) [colnames (df) == "3"] <- "title"; rownames (df) <- NULL' –