R 替换“替换”&引用;数据帧中的NA,其中&引用;也用作十进制

R 替换“替换”&引用;数据帧中的NA,其中&引用;也用作十进制,r,dataframe,na,R,Dataframe,Na,我得到了一个数据帧,其中“.”既用作十进制标记,又单独用作NA A B C D 1 . 1.2 6 1 12 . 3 2 14 1.6 4 要使用此数据帧,我需要获得: A B C D 1 NA 1.2 6 1 12 NA 3 2 14 1.6 4 在C列中,我应该如何处理保留小数但单独转换“ 以下是可复制格式的数据: data <- structure(list(A =

我得到了一个数据帧,其中“.”既用作十进制标记,又单独用作NA

A    B    C    D
1    .  1.2    6
1   12    .    3
2   14  1.6    4
要使用此数据帧,我需要获得:

A    B    C    D
1   NA  1.2    6
1   12   NA    3
2   14  1.6    4
在C列中,我应该如何处理保留小数但单独转换“

以下是可复制格式的数据:

data <- structure(list(A = c(1L, 1L, 2L), B = c(".", "12", "14"), C = c("1.2", 
    ".", "1.6"), D = c(6L, 3L, 4L)), .Names = c("A", "B", "C", "D"), 
    class = "data.frame", row.names = c(NA, -3L))

data假设您的数据框是
data

data[data == "."] <- NA

data[data==”]假设您的数据帧是
data

data[data == "."] <- NA

data[data==”]假设您的数据帧是
data

data[data == "."] <- NA

data[data==”]假设您的数据帧是
data

data[data == "."] <- NA

data[data==”]您可以使用
type.convert
并将
指定为您的
na.string

df <- data ## Create a copy in case you need the original form
df
#   A  B   C D
# 1 1  . 1.2 6
# 2 1 12   . 3
# 3 2 14 1.6 4

df[] <- lapply(df, function(x) type.convert(as.character(x), na.strings="."))
df
#   A  B   C D
# 1 1 NA 1.2 6
# 2 1 12  NA 3
# 3 2 14 1.6 4

您可以使用
type.convert
并指定
作为
na.string

df <- data ## Create a copy in case you need the original form
df
#   A  B   C D
# 1 1  . 1.2 6
# 2 1 12   . 3
# 3 2 14 1.6 4

df[] <- lapply(df, function(x) type.convert(as.character(x), na.strings="."))
df
#   A  B   C D
# 1 1 NA 1.2 6
# 2 1 12  NA 3
# 3 2 14 1.6 4

您可以使用
type.convert
并指定
作为
na.string

df <- data ## Create a copy in case you need the original form
df
#   A  B   C D
# 1 1  . 1.2 6
# 2 1 12   . 3
# 3 2 14 1.6 4

df[] <- lapply(df, function(x) type.convert(as.character(x), na.strings="."))
df
#   A  B   C D
# 1 1 NA 1.2 6
# 2 1 12  NA 3
# 3 2 14 1.6 4

您可以使用
type.convert
并指定
作为
na.string

df <- data ## Create a copy in case you need the original form
df
#   A  B   C D
# 1 1  . 1.2 6
# 2 1 12   . 3
# 3 2 14 1.6 4

df[] <- lapply(df, function(x) type.convert(as.character(x), na.strings="."))
df
#   A  B   C D
# 1 1 NA 1.2 6
# 2 1 12  NA 3
# 3 2 14 1.6 4

答案很好,但是如果您可以在使用
read.csv()
read.table()
获取数据时使用
na.strings=“.”
上游,那就更好了。。。(哎呀,现在我看到@AnandaMahto在他的回答中已经提到了这一点)答案是好的,但是如果您可以在使用
read.csv()
read.table()
获取数据时使用
na.strings=“。。。(哎呀,现在我看到@AnandaMahto在他的回答中已经提到了这一点)答案是好的,但是如果您可以在使用
read.csv()
read.table()
获取数据时使用
na.strings=“。。。(哎呀,现在我看到@AnandaMahto在他的回答中已经提到了这一点)答案是好的,但是如果您可以在使用
read.csv()
read.table()
获取数据时使用
na.strings=“。。。(哎呀,现在我看到@AnandaMahto在他的回答中已经提到了这一点)read.table中的na.strings参数可能是最简单/最短/最优雅的解决方案!read.table中的na.strings参数可能是最简单/最短/最优雅的解决方案!read.table中的na.strings参数可能是最简单/最短/最优雅的解决方案!read.table中的na.strings参数可能是最简单/最短/最优雅的解决方案!