Страница 1 из 1
					
				Фильтр по character
				Добавлено: 07 авг 2014, 08:39
				 Игорь Черниенко
				Здравствуйте
Возникло совершенно непонятное для меня затруднение. Мне необходимо выбрать запись в таблице по элементу списка. Значение поля имеет тип character, значения списка тоже. Когда я ссылаюсь на элемент списка, примерно так
df[c.field==lst,]
возвращается пустая строка. Однако, когда я просто копирую это значение в буфер и ставлю его в качестве условия отбора,
df[c.field=="Acropoma japonicum",]
выбираются те строки, которые мне нужны. В чем может быть причина?
			 
			
					
				Re: Фильтр по character
				Добавлено: 07 авг 2014, 11:25
				 gamm
				невозможно понять, где таблица, где список. В любом случае синтаксис вызывает некоторое недоумение - нет ни ссылки на столбец таблицы через $, ни адресации элементов списка через [[ ]] ...
и вообще, есть волшебное средство str(), я бы посмотрел str(lst) и str(lst[]) ...
			 
			
					
				Re: Фильтр по character
				Добавлено: 08 авг 2014, 01:21
				 Игорь Черниенко
				Так ведь первым делом и посмотрел.
Код: Выделить всё
>str(unv[1]) 
chr "Acropoma japonicum"
>str(fish[14,'name'])
chr "Acropoma japonicum"
Делал примерно так:
Код: Выделить всё
>fish<-read.table('fish.csv',sep=';',header=T)
>unv<-read.table('unv.csv',sep=';',header=T)
>fish$name<-as.character(fish$name)
>unv<-as.character(unv[,1])
>fish[fish$name==unv[1],]
[1] cod1 fish1 fish2 familie author name 
<0 строк> (или 'row.names' нулевой длины)
>unv[1]
"Acropoma japonicum"
>fish[fish$name=="Acropoma japonicum",]
cod1 fish1 fish2 familie author name
14 10050102 Acropoma japonicum <NA> <NA> Acropoma japonicum
 
			
					
				Re: Фильтр по character
				Добавлено: 08 авг 2014, 08:26
				 gamm
				строки реально разные, в unv вместо пробела сидит что-то с 16-ричным кодом A0. Разбирайтесь с источником данных и кодировками (первая строка из fish, вторая из unv)
			
		
				
			 
- ClipBoard.jpg (64.18 КБ) 5739 просмотров
  
			
					
				Re: Фильтр по character
				Добавлено: 11 авг 2014, 01:28
				 Игорь Черниенко
				В общем, разобраться я так и не разобрался, зато получилось использовать это дело в качестве разделителя :0) Спасибо за помощь