我可以在两个动作中完成子集化,但想学习如何在一个动作中完成。
我希望保留所有行并排除所有NA的列,并排除全部为零的行。
示例:
x1 <- 1:10
x2 <- round(rnorm(10, mean=3, sd = 1), 0)
x <- cbind(x1, x2, x3 = 0, x4 = NA)
x
x1 x2 x3 x4
1 2 0 NA
2 5 0 NA
3 2 0 NA
4 5 0 NA
5 3 0 NA
6 3 0 NA
7 2 0 NA
8 5 0 NA
9 3 0 NA
10 3 0 NA
xsub <- x[,apply(x, 2, function (x) !all(is.na(x)))] #excludes cols with all NAs
xsub <- xsub[,apply(xsub, 2, function(x) !all(x==0))] #excludes cols with all zeros
我尝试过使用| (或)在函数语句中没有任何反应。语法错误?只是学习功能。
xsub <- x[,apply(x, 2, function(x) !all(x==0) | !all(is.na(x)))]
我不知道如何使用子集来调用具有这些值的所有列,只是具有特定值的列。
答案 0 :(得分:0)
setDate = (newDate) => {
this.setState({ selectedDate: moment(newDate) });
}
handleOnPress = () => {
this.props.onModalButtonPress(this.state.selectedDate.unix());
}
答案 1 :(得分:0)
如果数据框全部为数字,则Onyambu的解决方案有效。
这一行代码对我有用。
xsub <- x[,apply(x, 2, function(x) !all(is.na(x)) & !all(x==0))]
&#34;&amp;&#34;处理过像包容性的#34;或&#34;声明。 它读取:在数据框(x)中,取所有不是所有NA的列(2)(!all(is.na(x))或NOT all all(0!all(x == 0)。希望这有助于。
如果您有更优雅或简单的解决方案,请发布。