DF:
1901年1901 1903 1968 1978 2002 2006 2010
种1 1 2 65 1 82 3 1
lat:49 46 47 47 48 43.1 44.23 47.11
长:-79.22 -79.5 -78.22 -79.84 -78.11 -77.114 -76.33 -76.2
Julian_Day:79 125 165 178 193 68 90 230
土地:16 24 25 30 34 34 39 41
还有更多变量,但这是矩阵的一个例子。我只想保留每年的行数以及每个具有Julian_day最低值的物种。即:这里将省略第二行,因为1901年物种1的79小于125.
答案 0 :(得分:1)
首先。我建议您以易于人们使用的格式提供data.frame
。我们将能够更好,更快地帮助您
df <- structure(list(Year = c(1901, 1901, 1903, 1968, 1978,
2002, 2006, 2010), species = c(1, 1, 2, 65, 1, 82, 3, 1), lat =
c(49, 46, 47, 47, 48, 43.1, 44.23, 47.11), long = c(79.22,
-79.5, -78.22, -79.84, -78.11, -77.114, -76.33, -76.2),
Julian_Day = c(79, 125, 165, 178, 193, 68, 90, 230), Land =
c(16, 24, 25, 30, 34, 34, 39, 41)), .Names =
c("Year", "species", "lat", "long", "Julian_Day", "Land"),
row.names = c(NA, -8L), class = "data.frame")
这是您的data.frame
df
# Year species lat long Julian_Day Land
#1: 1901 1 49.00 79.220 79 16
#2: 1901 1 46.00 -79.500 125 24
#3: 1903 2 47.00 -78.220 165 25
#4: 1968 65 47.00 -79.840 178 30
#5: 1978 1 48.00 -78.110 193 34
#6: 2002 82 43.10 -77.114 68 34
#7: 2006 3 44.23 -76.330 90 39
#8: 2010 1 47.11 -76.200 230 41
通常情况下,您只需dput(head(your dataframe))
但是如果无法透露您的数据,您可以构建一个小的假数据框来说明您的观点。
她是使用data.table
包
library(data.table)
setDT(df)[ ,.SD[which.min(Julian_Day)], .(species, Year)]