我有一个data.frame包含一些包含所有NA值的列,如何从data.frame中删除它们.
我可以使用这个功能吗?
na.omit(...) 
指定一些额外的参数?
我有一个空行的数据集.我想删除它们:
myData<-myData[-which(apply(myData,1,function(x)all(is.na(x)))),]
它运作正常.但是现在我想在我的数据中添加一个列并初始化第一个值:
myData$newCol[1] <- -999
Error in `$<-.data.frame`(`*tmp*`, "newCol", value = -999) : 
  replacement has 1 rows, data has 0
不幸的是它不起作用,我不明白为什么,我无法解决这个问题.当我使用以下方法一次删除一行时,它工作正常:
TgData = TgData[2:nrow(TgData),]
或类似的东西.
当我只使用前13000行时,它也可以工作.
但它不适用于我的实际数据,有32.000行.
我做错了什么?这对我来说似乎毫无意义.
我想计算曲线下面积来进行积分而不定义像in这样的函数integrate().
我的数据看起来像这样:
Date          Strike     Volatility
2003-01-01    20         0.2
2003-01-01    30         0.3
2003-01-01    40         0.4
etc.
我试图plot(strike, volatility)看看波动性微笑.有没有办法整合这个绘制的"曲线"?
可能重复:
R - 在data.frame中删除具有NA的行
如何在其中一列中使用NA值快速删除数据框中的"行"?
所以
     x1  x2
[1,]  1 100
[2,]  2  NA
[3,]  3 300
[4,] NA 400
[5,]  5 500
应该导致:
     x1  x2
[1,]  1 100
[3,]  3 300
[5,]  5 500
比方说,我有这样的数据:
data <- c(1,2,3,4,5,6,NaN,5,9,NaN,23,9)
attr(data,"dim") <- c(6,2)
data
     [,1] [,2]
[1,]    1  NaN
[2,]    2    5
[3,]    3    9
[4,]    4  NaN
[5,]    5   23
[6,]    6    9
现在我想要删除其中包含NaN值的行:第1行和第4行.但我不知道这些行在哪里,如果它是100.000+行的数据集,所以我需要找到它们的函数并删除完整的一行.
任何人都能指出我正确的方向吗?
我在看似简单的任务时遇到了一些问题:删除所有变量都NA使用dplyr的所有行.我知道可以使用基本R(删除R矩阵中的所有数据为NA并删除R中数据文件的空行)来完成,但我很想知道是否有一种简单的方法可以使用dplyr .
例:
library(tidyverse)
dat <- tibble(a = c(1, 2, NA), b = c(1, NA, NA), c = c(2, NA, NA))
filter(dat, !is.na(a) | !is.na(b) | !is.na(c))
filter上面的调用做了我想要的但是在我面临的情况下它是不可行的(因为有大量的变量).我想可以通过使用filter_并首先使用(长)逻辑语句创建一个字符串来实现它,但似乎应该有一个更简单的方法.
另一种方法是使用rowwise()和do():
na <- dat %>% 
  rowwise() %>% 
  do(tibble(na = !all(is.na(.)))) %>% 
  .$na
filter(dat, na)
但这看起来并不太好,虽然它完成了工作.其他想法?
可能重复:
R - 在data.frame中删除具有NA的行
我有一个名为sub.new的数据框,其中包含多个列.我试图排除任何包含NA或blank space" ".
I tried to use subset(),但它的目标是特定的列条件.无论如何都要扫描整个数据帧并创建一个没有单元格的子集NA或者blank space?
在下面的示例中,只应保留第一行:
# ID               SNP             ILMN_Strand   Customer_Strand
ID1234              [A/G]          TOP           BOT
Non-Specific        NSB (Bgnd)     Green
Non-Polymorphic     NP (A)         Red
Non-Polymorphic     NP (T)         Purple
Non-Polymorphic     NP (C)         Green
Non-Polymorphic     NP (G)         Blue
Restoration         Restore        Green
有什么建议?谢谢
我有data.frame34个序数和NA变量的15,000个观测值.我正在为市场细分研究执行聚类,并且需要仅NAs删除的行.取出userID后,我收到一条错误消息,说明只NAs在集群之前省略了2099行.
我找到了一个删除所有NA值的行的链接,但我需要确定2099行中的哪一行具有所有NA值.这里讨论的链接删除了包含所有NA值的行:在data.frame中删除带有NA的行
以下是六个变量中前五个观测值的样本:
> head(Store2df, n=5)
  RowNo      Age Gender HouseholdIncome MaritalStatus PresenceofChildren
1     1     <NA>   Male            <NA>          <NA>               <NA>
2     2    45-54 Female            <NA>          <NA>               <NA>
3     3     <NA>   <NA>            <NA>          <NA>               <NA>
4     4     <NA>   <NA>            <NA>          <NA>               <NA>
5     5    45-54 Female        75k-100k       Married                Yes
#Making a vector
> Vector1 <- Store2df$RowNo 
#Taking out RowNo column
> Store2df$RowNo <- NULL
编辑:我把结果放在一个对象,但发现代码创建了一个额外的列.单击RStudio的环境,创建了一个名为row.names的额外列,用原始行名称标记每一行.删除了几千行,新列标记了具有旧行号的新行.但是当看到新对象的头部时,我没有看到行标签.为什么row.names标签在环境中显示,但在我查看头部时却不显示?
#Remove …我在R中有一个字符数据框,里面有NaNs.我需要删除任何行,NaN然后将其转换为数字数据框.
如果我只是在数据框上执行as.numeric,我会遇到以下情况
Error: (list) object cannot be coerced to type 'double'
 1:
 0:
我想删除其任何列data.table中包含的所有行Inf.到目前为止,我一直在使用这种方法:
DT <- data.table(col1 = c(1,2,3), col2 = c(4,Inf,5))
DT[,drop := apply(.SD, 1, function(x) any(is.infinite(x))), by = 1:nrow(DT)]
DT <- DT[(!drop)][,drop:=NULL]
来自这个Stackoverflow问题.但是,这种方法不能很好地扩展到大量数据.是否有更好的方法来删除行Inf?