0

我有看起来像这样的数据:

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

因此,只删除了年龄列中的值,而不是整行。有什么建议么?

4

2 回答 2

1

看起来这样就可以了:

profitData[profitData$age>0,]
于 2013-05-11T03:51:27.963 回答
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
于 2013-05-11T03:53:07.010 回答