【发布时间】:2010-12-28 10:13:45
【问题描述】:
我有一个包含两列的数据框(数据并不总是相同的)。
1 1
2 2
3 3
0 0
-1 -1
-2 -2
-3 -3
我想做的是为列的前 10% 和列的下 10% 创建另一列,用作散点图的标签。
1 1
2 2
3 3 1
0 0
-1 -1
-2 -2
-3 -3 2
此外,它需要能够从任一列中选择并标记顶部/底部 10%
有什么想法吗?
【问题讨论】:
标签: r
我有一个包含两列的数据框(数据并不总是相同的)。
1 1
2 2
3 3
0 0
-1 -1
-2 -2
-3 -3
我想做的是为列的前 10% 和列的下 10% 创建另一列,用作散点图的标签。
1 1
2 2
3 3 1
0 0
-1 -1
-2 -2
-3 -3 2
此外,它需要能够从任一列中选择并标记顶部/底部 10%
有什么想法吗?
【问题讨论】:
标签: r
你的问题有点模棱两可。 “在 jpeg 输出中使用的比例”是什么意思。意思是?两列总是相同的吗?也许您正在寻找类似以下的内容:
> dat<-data.frame(a=c(-(1:3),0:3))
> low<-quantile(dat$a,.1)
> high<-quantile(dat$a,.9)
> dat$flag<-NA
> dat$flag[dat$a<=low]<-1
> dat$flag[dat$a>high]<-2
> dat
a flag
1 -1 NA
2 -2 NA
3 -3 1
4 0 NA
5 1 NA
6 2 NA
7 3 2
【讨论】:
感谢 Ian 的回复,我意识到问题本身的格式不是很好,但我很难解释我想要什么。在你的帮助下,我已经能够把它放在一起:
top <- subset(data, data$column > quantile(data$column, 0.85))
bottom <- subset(data, data$column < quantile(data$column, 0.15))
listing <- rbind(top,bottom)
label <- 1:nrow(listing)
listing[sort.list(listing$Distance, decreasing=T),]
【讨论】: