Im пытается разбить строку на "." и создайте дополнительные столбцы с двумя строками до и после «.».применить strsplit rowwise
tes<-c("1.abc","2.di","3.lik")
dat<-c(5,3,2)
h<-data.frame(tes,dat)
h$num<-substr(h$tes,1,1)
h$prim<-unlist(strsplit(as.character(h$tes),"\\."))[2]
h$prim<-sapply(h$tes,unlist(strsplit(as.character(h$tes),"\\."))[2])
Я бы хотел h$prim
содержать "ABC", "ди", "ЛИК" .. Однако I'm не в состоянии понять это. Думаю, strsplit
не векторизован, но тогда я думал, что версия sapply
должна сработать. Однако я предполагаю, что это должно быть легко :-)
С уважением, // M
AllRight .. Однако не так просто, как я думал .. Что это? " [[" вещь? – Misha
@ Миша: сложная вещь о strsplit заключается в том, что она возвращает список. Это "[[" вещь - это функция для извлечения из этого списка. 2 является аргументом для этой функции, что означает, что он берет второй элемент списков, возвращаемых strsplit. См. Также? "[[" В R. и thx @rcs, это умно! –
Это оператор индексирования. «[[" может использоваться для выбора одного элемента, отбрасывающего имена, см. '? Извлечение'. Вы также можете использовать «[». – rcs