Извините, если это дублирующий вопрос, но я посмотрел вокруг на похожие проблемы и не смог найти реального решения.Во всяком случае, здесь идет:
Я прочитал CSV-файл в таблицу.Там я имею дело с 3 столбцами: «ID» (идентификатор автора), «num_pub» (количество опубликованных статей) и «год» (охватывает период с 1930 по 2017 год).
Я хотел бы получитьфинальная таблица, где у меня будет "num_pub" для каждого "года", для каждого "ID".Таким образом, строки будут «ID», столбцы - «год», а под каждым годом будет соответствующее значение «num_pub» или 0, если автор ничего не опубликовал.
Я попытался создать две новые таблицы и объединить их несколькими различными способами, описанными здесь , но безрезультатно.
Итак, сначала я прочитал свой файл в таблицу: tab<-read.table("mytable.csv",sep=",",head=T,colClasses=c("character","numeric","factor"))
head(tab,10)
ID num_pub year
1 00002 1 1977
2 00002 2 1978
3 00002 1 1983
4 00002 4 1984
5 00002 3 1990
6 00002 1 1994
7 00002 2 1996
8 00004 3 1957
9 00004 1 1958
10 00004 1 1959
После этого я смог создать таблицу, в которой для каждого «идентификатора» был каждый отдельный «год», и если автор опубликовал в этом году,значение было 1, в противном случае это было 0: a<-table(tab[,1], tab[,3])
Вызов head(a,1)
возвращает следующую таблицу: pic
Я хотел бы знать, какДля достижения желаемого результата я описал выше.А именно, имея таблицу, в которой строки будут заполняться "ID", столбцы будут заполняться "year" (с 1930 по 2017), а под каждым годом будет фактическое значение "num_pub" или значение 0,Структура таблицы будет такой же, как показано на pic
Спасибо за ваше время и помощь.Я очень плохо знаком с R, и вроде как застрял в грязи с этим.
Редактировать: изменение формы, как объяснено здесь , не решает мою проблему.Мне нужны нули вместо "NA", и я хочу, чтобы мой год начинался с 1930 года, а не с первого года, который опубликовал автор.