统计数据的出现次数并将其放入数据集(R编程)

  • 本文关键字:数据集 编程 统计数据 r
  • 更新时间 :
  • 英文 :


我目前正在分析一个音乐专辑排名网站上的一些数据,我想把年份分组成一个范围,例如:如果专辑是在1992年发行的,那么它将被分类为1991-2010。

这是现在的数据集:音乐专辑数据集

列(Year_Range)一开始不存在。

    year_range1 = c()
    year_range2 = c()
    year_range3 = c()
    year_range4 = c()
    
    for (x in 1950:1970){
      year_range1 <- append(year_range1,x)
    }
    
    for (x in 1971:1990){
      year_range2 <- append(year_range2,x)
    }
    
    for (x in 1991:2010){
      year_range3 <- append(year_range3,x)
    }
    
    for (x in 2011:(format(Sys.Date(), "%Y"))){
      year_range4 <- append(year_range4,x)
    }
    
    range1=0
    range2=0
    range3=0
    range4=0
    range=c()
    
    for (x in 1:length(year)) {
      if (!is.na(match(year[x],year_range1))) {
        range[x] <- "1950-1970"
      }else if (!is.na(match(year[x],year_range2))) {
        range[x] <- "1971-1990"
      }else if (!is.na(match(year[x],year_range3))) {
        range[x] <- "1991-2010"
      }else if (!is.na(match(year[x],year_range4))) {
        range[x] <- "2011-Present"
      }
    } 
data_set <- data.frame("Sequence" = (1:80),
                       "Album" = album,
                       "Artist" = artist,
                       "Score" = score,
                       "Raters" = rating,
                       "Number of reviewers" = review,
                       "Year_Released" = year,
                       "Year_Range" = range,
                       "Genre" = genre)

我使用上面的代码来计算出现次数,然后将它们分组到一个单独的列表中,然后将其输入到Year_Range列下的数据集中。我的问题是,有没有更好的办法?我觉得这是一段不必要的长代码,可以使用2或3个命令来修复。如有任何帮助,不胜感激。

%in%运算符应该允许您以更短的方式计算

df$Year_range=NA #create column Year_range, df being your data frame
df$Year_range[df$year %in% 1971:1990] <- "1971-1990"
df$Year_range[df$year %in% 1991:2010] <- "1991-2010"
df$Year_range[df$year > 2011] <- "2011-Present"

最新更新