Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算R中数据帧内一组其他唯一值的最小/最大项?_R_Dataframe - Fatal编程技术网

如何计算R中数据帧内一组其他唯一值的最小/最大项?

如何计算R中数据帧内一组其他唯一值的最小/最大项?,r,dataframe,R,Dataframe,我在R中有布告牌热门歌曲的数据集。我能够计算出一个特定艺术家的独特点击数(见下面的代码),但却很难找到歌曲在排行榜上的最高点。我唯一能想到的是,在过滤掉唯一的值之前,为每首歌运行一个循环,并计算最小值。我是新手,所以没有其他更简单的方法 mydata=read.csv("Hot100.csv") mydata <- mydata[order(mydata$artist, mydata$song, mydata$date),] head(mydata) # date position

我在R中有布告牌热门歌曲的数据集。我能够计算出一个特定艺术家的独特点击数(见下面的代码),但却很难找到歌曲在排行榜上的最高点。我唯一能想到的是,在过滤掉唯一的值之前,为每首歌运行一个循环,并计算最小值。我是新手,所以没有其他更简单的方法

mydata=read.csv("Hot100.csv")
mydata <- mydata[order(mydata$artist, mydata$song, mydata$date),]
head(mydata)

# date position        song  artist
# 218482 2000-07-01       40 Bye Bye Bye 'N Sync
# 226912 2002-02-09       70  Girlfriend 'N Sync
# 226997 2002-02-16       55  Girlfriend 'N Sync
# 227072 2002-02-23       30  Girlfriend 'N Sync
# 227164 2002-03-02       22  Girlfriend 'N Sync
# 227260 2002-03-09       18  Girlfriend 'N Sync

# to remove some cols - leaves artist and song.  Has duplicates
mysub = subset(mydata, select = -c(date, position))

# now to make unique
mysub_u = unique(mysub[,c(1,2)])
View(mysub_u)

# put into table form
mytable = table(mysub_u$artist)

# but this is table form , not df
df=as.data.frame(mytable)

head(df)

# Var1 Freq
# 1                  'N Sync    7
# 2 'N Sync & Gloria Estefan    1
# 3  'N Sync Featuring Nelly    1
# 4             'Til Tuesday    1
# 5      "Weird Al" Yankovic    2
# 6                    (+44)    1
mydata=read.csv(“Hot100.csv”)

mydata如果有一个更大的数据集(或任何可用的数据)可以使用,那就太好了。然而,这里有一种方法可以在您提供的小数据上进行演示

library(readr)
library(dplyr)

mydata <- read_table2("index date position song artist
218482 2000-07-01 40 Bye_Bye_Bye 'N_Sync
226912 2002-02-09 70  Girlfriend 'N_Sync
226997 2002-02-16 55  Girlfriend 'N_Sync
227072 2002-02-23 30  Girlfriend 'N_Sync
227164 2002-03-02 22  Girlfriend 'N_Sync
227260 2002-03-09 18  Girlfriend 'N_Sync")

out <- mydata %>% 
  group_by(artist,song) %>% 
  mutate(highest_position = min(position)) %>% 
  select(-index,-date,-position) %>% 
  unique(.)
库(readr)
图书馆(dplyr)
mydata%
突变(最高位置=最小位置))%>%
选择(-index,-date,-position)%>%
独特的
输出:

> out
# A tibble: 2 x 3
# Groups:   artist, song [2]
  song        artist  highest_position
  <chr>       <chr>              <dbl>
1 Bye_Bye_Bye 'N_Sync               40
2 Girlfriend  'N_Sync               18
>输出
#一个tibble:2x3
#组别:艺术家、歌曲[2]
歌曲艺术家最高职位
1拜拜拜拜拜拜N\u同步40
2女朋友N_Sync 18

谢谢。抱歉没有提供更多数据,但在web上找不到该文件的链接。下次我们会做得更多。解决方案奏效了,非常感谢。,