创建第二列中的多列值,并根据第一列

时间:2018-05-26 12:14:35

标签: r

我是新手,如果我没有正确提问,我很抱歉。 我有两列countryYear

    INDIA 1970
    USA   1970
    USA   1971
    INDIA 1970
    .
    .
    UK    1972

我想要这样的新数据框,我需要用事件填充它。

            1970 1971 1972.... 
    INDIA    2
    USA      1     1
    UK                1

1 个答案:

答案 0 :(得分:3)

选项可以是reshape2::dcast fun.aggregate参数设置为length时使用{<1}}:

library(reshape2)
dcast(df, Country~Year, length)
#   Country 1970 1971 1972
# 1   INDIA    2    0    0
# 2      UK    0    0    1
# 3     USA    1    1    0

数据:

df <- read.table(text = 
"Country Year
INDIA 1970
USA   1970
USA   1971
INDIA 1970
UK    1972",
header = TRUE, stringsAsFactors = FALSE)