Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除R中具有非数字列值的数据_R - Fatal编程技术网

删除R中具有非数字列值的数据

删除R中具有非数字列值的数据,r,R,所以我有一个数据集,包括某些人的肺活量。我试图分析数据分布和关系。唯一的问题是数据有些不完整。有些行包括“N/A”作为肺活量。这导致了一个问题,因为它导致不同子集的平均值和sd始终为“N/a”。如何将其形成一个子集,使其仅包含非N/a的数据 我试过这个: fData1 = read.table("lung.txt",header=TRUE) fData2= fData1[fData1$fev!="N/A"] 但这给了我一个“未定义列选择错误” 如何使数据集排除带有“N/a”的行 以下是我的数据

所以我有一个数据集,包括某些人的肺活量。我试图分析数据分布和关系。唯一的问题是数据有些不完整。有些行包括“N/A”作为肺活量。这导致了一个问题,因为它导致不同子集的平均值和sd始终为“N/a”。如何将其形成一个子集,使其仅包含非N/a的数据

我试过这个:

fData1 = read.table("lung.txt",header=TRUE)
fData2= fData1[fData1$fev!="N/A"]
但这给了我一个“未定义列选择错误”

如何使数据集排除带有“N/a”的行

以下是我的数据集的开头:

 id age    fev height male smoke 
  1  72 1.2840   66.5    1     1
  2  81 2.5530   67.0    0     0
  3  90 2.3830   67.0    1     0
  4  72 2.6990   71.5    1     0
  5  70 2.0310   62.5    0     0
  6  72 2.4100   67.5    1     0
  7  75 3.5860   69.0    1     0
  8  75 2.9580   67.0    1     0
  9  67 1.9160   62.5    0     0
 10  70     NA   66.0    0     1

如果只想筛选出具有
NA
值的行,可以使用
complete.cases()


一个选项是应用不包括NA值的操作:

dat <- read.table("lung.txt", header = T, na.strings = "NA")
mean(dat$fev, na.rm=T) # mean of fev col
sd(dat$fev, na.rm=T)

dat FWIW
mean
sd
都有一个
na.rm
参数。该行需要一个逗号才能正常运行
fData1[fData1$fev!=“N/A”,]
但我不明白为什么你认为
NA
“N/A”相同,而不是
=不
我宁愿用
!is.na()
。但是我怀疑@Psidom的答案应该可以解决您的问题。
na.omit(fData1)
也会很好地工作。@RichardScriven肯定;-)
dat <- read.table("lung.txt", header = T, na.strings = "NA")
mean(dat$fev, na.rm=T) # mean of fev col
sd(dat$fev, na.rm=T)
fData1 <- na.omit(fData1)
fData1 <- na.exclude(fData1) # same result
fData2 <- fData1[is.na(fData1$fev), ]
fData2 <- subset(fData1, is.na(fData1$fev))