У меня есть большой dataframe с информацией о классификации. Вот пример:применить strsplit к определенному столбцу в data.frame
> d <- data.frame(x = c(1,2,3,4), classification = c("cl1.scl1", "cl2", "cl3-bla", "cl4.subclass2"))
> d
x classification
1 1 cl1.scl1
2 2 cl2
3 3 cl3-bla
4 4 cl4.subclass2
Прежде чем сделать какой-либо дальнейшей обработки мне нужно агрегировать информацию о классификации, а это значит, что я должен разделить классификации строк от «» и возьмите первый токен. Это результат мне нужно:
> d
x classification
1 1 cl1
2 2 cl2
3 3 cl3-bla
4 4 cl4
На данный момент я вычисляя это следующим образом:
d$classification = unlist(lapply(d$classification, function (x) strsplit(as.character(x), ".", fixed=TRUE)[[1]][1]))
Это работает, но мне потребовалось некоторое время, чтобы понять это. Я предполагаю, что есть более элегантное решение, которое я, вероятно, пропустил. Какие-либо предложения? Благодаря!
Ваше название темы немного вводит в заблуждение; это не совсем о применении функции к определенному столбцу, а как манипулировать результатами из strsplit. –