当子集删除行时,只删除一个列值

时间:2013-05-11 03:24:36

标签: r rows subset

我的数据看起来像这样:

name   age   profit
Ann     -3     10
Ann     -2      5
Ann     1       23
Ann     2       15
Josh    -2      12
Josh    -1      34
Josh     0      1
Josh     1      21
Josh     2      26

我想删除age为负数的行。 使用后

subset(profitData,age>0,select=c(name,age,profit))

我明白了:

name   age   profit
Ann     1      10
Ann     2       5
Ann     3      23
Ann     4      15
Josh    1      12
Josh    2      34
Josh    3       1
Josh    4      21
Josh    5      26

因此,只删除age列中的值,但不删除整行。 有什么建议吗?

2 个答案:

答案 0 :(得分:1)

看起来好像可以:

profitData[profitData$age>0,]

答案 1 :(得分:0)

回答您的特定子集问题......

有些事情发生了变化。我运行你的代码并获得你想要的输出。开始一个干净的会议可能:

profitData <- read.table(text="name   age   profit
Ann     -3     10
Ann     -2      5
Ann     1       23
Ann     2       15
Josh    -2      12
Josh    -1      34
Josh     0      1
Josh     1      21
Josh     2      26", header=T)

subset(profitData,age>0,select=c(name,age,profit))

## > subset(profitData,age>0,select=c(name,age,profit))
##   name age profit
## 3  Ann   1     23
## 4  Ann   2     15
## 8 Josh   1     21
## 9 Josh   2     26
相关问题