【发布时间】:2012-12-02 00:53:59
【问题描述】:
我有一个非常基本的R 问题,但我很难找到正确的答案。我有一个如下所示的数据框:
ind<-rep(1:4,each=24)
hour<-rep(seq(0,23,by=1),4)
depth<-runif(length(ind),1,50)
df<-data.frame(cbind(species,ind,hour,depth))
df$depth<-as.numeric(df$depth)
我希望它选择并替换 depth < 10(例如)为零的所有行,但我想保留与这些行相关联的所有信息以及数据框的原始维度。
我尝试了以下方法,但这不起作用。
df[df$depth<10]<-0
有什么建议吗?
【问题讨论】:
-
请放弃使用
data.frame( cbind( ... ) )的惯例。cbind函数创建了一个矩阵,它将所有数值强制转换为“字符”。只需使用data.frame(species,ind,hour,depth))。顺便说一句,这会奏效:df$depth[df$depth<10] <- 0 -
感谢有关
cbind()的有用提示!我想知道在df$depth列中有NA值(应该忽略)的情况下如何处理df$depth[df$depth<10] <- 0?
标签: r dataframe conditional-statements