Я пытаюсь создать hashmap в R с ключом в качестве имени экрана пользователя (строки) Twitter и значения как числа его твитов, которые я просканировал (целое число).has.key метод в хеш-пакете R, не сохраняющий строковый ключ должным образом
user_count_map <- hash()
i=1
while(i<= num_tweets){
screen_name <- tweets_df[i,]$screenName
#print (screen_name)
#str(screen_name)
if(has.key(screen_name,user_count_map)==TRUE){
count <- user_count_map$screen_name
user_count_map$screen_name <- (count +1)
} else {
user_count_map$screen_name <- 1
}
i = i+1
}
Есть около 17K твитов в dataframe tweets_df (так num_tweets ~ 17K) и есть, конечно, пользователи, для которых я собрано более 1 твит. Проблема в том, что оператор «if» никогда не выполняется, и элемент управления всегда переходит к оператору «else». После выполнения этого кода, длина этой карты равен 1. Здесь выход клавиш() и значений() метод: -
values(user_count_map)
screen_name: 1
keys(user_count_map)
'screen_name'
Здесь один выход ул (screen_name): -
chr "Ixxxxxxxxa"
Очевидно, что существует проблема хэширования в том, как переменная screen_name разрешена/хеширована и сохранена на карте. Что я могу сделать, чтобы исправить это? Я довольно новичок в R. Любая помощь будет оценена по достоинству.
Использование '[' не работает, либо, используя '[[' оператор делает. Я пытаюсь понять, почему. Спасибо – opensam
Нечетный. «[« работал для меня на одном тестовом примере, но у меня не было полного фрейма данных для тестирования. – G5W