【发布时间】:2015-03-26 08:43:06
【问题描述】:
如果列中的值为0,我想删除一行。我试过了:
> dput(df)
structure(list(ID = c(1L, 98L, 765L, 13L, 3L, 24L, 24L), Desc = c("hallpo",
"TEST", "asdfsd", "alla", "asdfs", "sd", "sd"), Val = c(0L, 0L,
0L, 100L, 123L, 2L, 10L), CODEX = c("Random", "Random", "Random",
"Random", "Random", "Random", "Random"), IsCustomer = c(TRUE,
FALSE, TRUE, TRUE, FALSE, FALSE, TRUE)), .Names = c("ID", "Desc",
"Val", "CODEX", "IsCustomer"), row.names = c(NA, -7L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x0000000000110788>)
>
> df$Val[apply(df$Val[,-1], 1, function(x) !all(x==0)),]
Error in df$Val[, -1] : incorrect number of dimensions
任何建议为什么我的尺寸是错误的?
感谢您的回复!
更新
我更改了我的 data.frame,现在它要复杂得多。
df <- dfFile.Value != 0]
Error in `[.data.frame`(df,File.Value != 0) :
找不到对象 File.Value'
str(df)
'data.frame': 14839 obs. of 4 variables:
$ test.Person : Factor w/ 3088 levels "","*asdfasdgw*",..: 9 adf ...
$ test.Value : Factor w/ 5484 levels "-243","-8575",..: 3 3 3909 4792 3 1662 3 3 3 3 ...
任何建议我做错了什么?
【问题讨论】:
-
你在向量上使用
applydf$Val它应该是apply(df[,-1], 1, ..)如果你想删除0行的Val,df[Val!=0] -
我会使用
%in%而不是==或!=,因为在数据中包含 NA 会给您带来意想不到的结果 -
我相信你有一个
.而不是[。应该是df <- dfFile[Value != 0]
标签: r statistics