R 将多个值定义为在数据帧中丢失

R 将多个值定义为在数据帧中丢失,r,dataframe,multiple-columns,missing-data,R,Dataframe,Multiple Columns,Missing Data,如何定义R中数据帧中缺少的多个值 考虑一个数据框,其中两个值“888”和“999”表示缺少的数据: df <- data.frame(age=c(50,30,27,888),insomnia=c("yes","no","no",999)) df[df==888] <- NA df[df==999] <- NA df这应该行得通 >rm(list=ls()) >df1 df2[sapply(df2,“%in%”,table=c(888999))]全部相等(df1,df2) [1

如何定义R中数据帧中缺少的多个值

考虑一个数据框,其中两个值“888”和“999”表示缺少的数据:

df <- data.frame(age=c(50,30,27,888),insomnia=c("yes","no","no",999))
df[df==888] <- NA
df[df==999] <- NA
df这应该行得通

>rm(list=ls())
>df1 df2[sapply(df2,“%in%”,table=c(888999))]全部相等(df1,df2)
[1] 真的

您可以使用上面的方法指定一个缺少值的对象标识符,然后将其作为
参数传递。

以下是三种解决方案:

# 1. Data set
df <- data.frame(
  age = c(50, 30, 27, 888),
  insomnia = c("yes", "no", "no", 999))

# 2. Solution based on "one line of code per missing data value"
df[df == 888] <- NA
df[df == 999] <- NA
is.na(df)

# 3. Solution based on "applying function to each column of data set"
df[sapply(df, function(x) as.character(x) %in% c("888", "999") )] <- NA
is.na(df)

# 4. Solution based on "dplyr"

# 4.1. Load package
library(dplyr)

# 4.2. Define function for missing values
is_na <- function(x){
 return(as.character(x) %in% c("888", "999")) 
}

# 4.3. Apply function to each column
df %>% lapply(is_na)
#1。数据集

df Try
df[df==888 | df==999]作为alt,如果使用
read.table
(和变体)例如,在读入时可以使用
na.strings
转换它们
na.strings=c(“,888,999)