- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我目前在R中遇到一个我完全知道如何在Stata中处理的问题,但是却浪费了两个多小时来完成R中的工作。
使用下面的data.frame,我想要的结果是确切地获得每个组的第一个观察值,而组是由多个变量组成的,并且必须由另一个变量进行排序,即通过以下方式获得的data.frame mydata:
id <- c(1,1,1,1,2,2,3,3,4,4,4)
day <- c(1,1,2,3,1,2,2,3,1,2,3)
value <- c(12,10,15,20,40,30,22,24,11,11,12)
mydata <- data.frame(id, day, value)
id day value
1 1 10
1 2 15
1 3 20
2 1 40
2 2 30
3 2 22
3 3 24
4 1 11
4 2 11
4 3 12
row[1]: (id,day)=(1,1))
,首先对值进行排序(以便保留值最低的行)。
bys id day (value): keep if _n == 1
mydata$id1 <- paste(mydata$id,"000",mydata$day, sep="") ### the single group identifier
myid.uni <- unique(mydata$id1)
a<-length(myid.uni)
last <- c()
for (i in 1:a) {
temp<-subset(mydata, id1==myid.uni[i])
if (dim(temp)[1] > 1) {
last.temp<-temp[dim(temp)[1],]
}
else {
last.temp<-temp
}
last<-rbind(last, last.temp)
}
last
bys var1 var2: keep if _n == 1
的有效方法?
最佳答案
我会命令data.frame
,此时您可以使用by
进行调查:
mydata <- mydata[with(mydata, do.call(order, list(id, day, value))), ]
do.call(rbind, by(mydata, list(mydata$id, mydata$day),
FUN=function(x) head(x, 1)))
data.frame
:
library(data.table)
DT <- data.table(mydata, key = "id,day")
DT[, head(.SD, 1), by = key(DT)]
# id day value
# 1: 1 1 10
# 2: 1 2 15
# 3: 1 3 20
# 4: 2 1 40
# 5: 2 2 30
# 6: 3 2 22
# 7: 3 3 24
# 8: 4 1 11
# 9: 4 2 11
# 10: 4 3 12
data.table
:
DT <- data.table(id, day, value, key = "id,day")
DT[, n := rank(value, ties.method="first"), by = key(DT)][n == 1]
Ranks <- with(mydata, ave(value, id, day, FUN = function(x)
rank(x, ties.method="first")))
mydata[Ranks == 1, ]
关于R-保留由多个变量标识的每个组的第一个观察值(Stata等效 "bys var1 var2 : keep if _n == 1"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553235/
这个问题在这里已经有了答案: How do I restrict a float value to only two places after the decimal point in C? (17
我在 POEdit 的源关键字中设置了这个: _ __ _e _ex _n esc_attr_e _x _nc 它有效,但是当我使用 _n() 时我只得到第一个字符串功能(二十一主题): 任何如何让
我想知道 R 中是否有像 Stata 中那样的函数,您可以在其中使用每次观察之前或之后观察 n 个数字的值。例如,如果我需要乘以或除以观察结果,我会写这样的东西 variable_x/variable
我正在尝试使用 sklearn 根据我的数据集训练决策树。 当我尝试将数据切片为(结果:Y,预测变量:X)时,结果(我的标签)在 True/False: #data slicing X = df.va
所以我目前在R中遇到一个我完全知道如何在Stata中处理的问题,但是却浪费了两个多小时来完成R中的工作。 使用下面的data.frame,我想要的结果是确切地获得每个组的第一个观察值,而组是由多个变量
假设我们要解析一个内积表达式并得到结果。 "SUM({1, 2, 3} .* {4, 5, 6})" qi::_1 和 qi::_2 非常方便地在解析器中引用第 i 个属性。 void Test(st
我是一名优秀的程序员,十分优秀!