In R, the na.omit() function can be used to discard entries in a data.frame that contain NA values. As a side effect, if lines are indeed discarded, the function adds an attribute 'omit' to the result that contains a vector of the row.names that were discarded.

I want to discard this 'omit' attribute because I don't need it. What is the best way to do that?

有帮助吗?

解决方案

Just use data.frame after na.omit or you can do it directly:

> temp <- data.frame(a=c(1,NA,44),b=c(99,29,NA))
> new <- na.omit(temp)
> attributes(new)
$names
[1] "a" "b"

$row.names
[1] 1

$class
[1] "data.frame"

$na.action
2 3
2 3
attr(,"class")
[1] "omit"

> reduced <- data.frame(new)
> attributes(reduced)
$names
[1] "a" "b"

$row.names
[1] 1

$class
[1] "data.frame"
>

direct method:

attributes(new)$na.action <- NULL
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top