У меня проблема с разделением строк. У меня огромное количество файлов, имена которых имеют такую структуру:
filenames = c("NO2_Place1_123_456789.dat", "NO2_Nice_Place_123_456789.dat", "NO2_Nice_Place_123_456789.dat", "NO2_Place2_123_456789.dat")
Мне нужно извлечь названия станций, например Place1, Nice_Place1 и так далее. Это либо «Место» и число, либо «Nice_Place» и число.
Я пытался получить имена станций для «Места» и числа, и это работает geat, но это не дает мне правильное имя в случае «Nice_Place» ... потому что он обрабатывает его как 2 слова.
Station = strsplit(filenames[1], "_")[[1]][2] #Works
Station = strsplit(filenames[2], "_")[[1]][2] #Doesnt work
Моя идея теперь использовать if ... else. Поэтому, если в приведенном выше примере Station Station имеет значение «Nice», добавьте 3-ю часть строкового разбиения с подчеркиванием. К сожалению, я совершенно новичок в этом, если еще условие.
Может кто-нибудь, пожалуйста, помочь?
РЕДАКТИРОВАТЬ:
Ожидаемый результат:
Station = strsplit(filenames[1], "_")[[1]][2] #Station = Place
Station = strsplit(filenames[2], "_")[[1]][2] #Station = Nice -- not correct I want to have "Nice_Place"
Так когдаЯ получаю
Station = strsplit(filenames[2], "_")[[1]][2] #Station = Nice
Я хочу добавить условие, что если Station "Хорошее", оно должно добавить strsplit(filenames[2], "_")[[1]][3]
с подчеркиванием!
EDIT2:
Iнашел теперь способ получить то, что я хочу:
filenames = c("NO2_Place1_123_456789.dat", "NO2_Nice_Place1_123_456789.dat", "NO2_Nice_Place2_123_456789.dat", "NO2_Place2_123_456789.dat")
Station = strsplit(filenames[2], "_")[[1]][2]
if (Station == "Nice"){
Station = paste(Station, strsplit(filenames[2], "_")[[1]][3], sep = "_")
}