每个DSSite_Dis
中每个SiteID
的最低year
是多少?
我试过了:
ds_DT <- ds_fish[ , .SD[which.min(DSSite_Dis)], by = c("SiteID", "year")]
但是SiteID
和year
的长度不同。
我无法通过在year
内迭代SiteID
来解决此问题。which.min
是一个data.table
函数,但很乐意使用其他内容。
如果这是一个简单的循环问题,请道歉。
答案 0 :(得分:3)
SiteID
和year
不是不同的长度。很可能ds_fish[ , uniqueN(SiteID)]
与ds_fish[ , uniqueN(year)]
不同,但ds_fish
属于data.table
,必须 length(ds_fish$SiteID) == length(ds_fish$year)
(反过来两者都等于nrow(ds_fish)
)的情况。
您提供的代码接近您想要的代码。这就是你想要的:
ds_fish[ , .(min_site_dis = min(DSSite_Dis)), by = .(SiteID, year)]
您所做的就是为每个最小DSSite_Dis
返回完整观察 - 这不仅会返回最小DSSite_Dis
,还会返回与这些最小值对应的行中剩余的ds_fish
列。
您可以咀嚼的概念性说明 - 您在每个DSSite_Dis
&#中对每个SiteID
的最低year
表达了您的意见&#34; 34 ;;您应该说服自己,这与每个 DISSite_Dis
中每个 year
的最低SiteID
相同。
答案 1 :(得分:0)
原始代码现在有效。
这里是完整的
button.click()