【问题标题】:Conditional Column Creation条件列创建
【发布时间】: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】:

    你的问题有点模棱两可。 “在 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
    

    【讨论】:

      【解决方案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),]
      

      【讨论】:

        猜你喜欢
        • 2019-06-05
        • 2020-10-03
        • 2015-04-26
        • 2019-02-15
        • 2021-04-26
        • 2020-10-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多