在R中使用as.character时删除空单元格
我有一张这样的桌子在R中使用as.character时删除空单元格,r,R,我有一张这样的桌子 A B C AB ABC CBS AB ABC ADS BBB A希望将列用作字符,因此使用此 A= as.character(table$A) 这导致了c(“AB”、“AB”和“)我的目标是c(“AB”、“AB”),因此没有空单元格”。为了理解这个空单元格,我使用了这个A=A[!A==“”],它给出了我想要的结果,但必须有一种更优雅的方式来实现同样的目标 可能的问题是1)是否有更好的方法删除空字符/单元格。 或者更一般的
A B C
AB ABC CBS
AB ABC
ADS
BBB
A希望将列用作字符,因此使用此
A= as.character(table$A)
这导致了c(“AB”、“AB”和“)
我的目标是c(“AB”、“AB”)
,因此没有空单元格”
。为了理解这个空单元格,我使用了这个A=A[!A==“”]
,它给出了我想要的结果,但必须有一种更优雅的方式来实现同样的目标
可能的问题是1)是否有更好的方法删除空字符/单元格。
或者更一般的2)有没有一种方法可以在没有空单元格的情况下将3列(a、B、C)转换为字符a、B、C
谢谢
'data.frame': 3 obs. of 3 variables:
$ A: Factor w/ 2 levels "","AB": 2 2 1
$ B: Factor w/ 3 levels "","ABC","ADS": 2 1 3
$ C: Factor w/ 3 levels "ABC","BBB","CBS": 3 1 2
在数据导入期间,尝试指定参数
na.strings
。另外,您可以编写默认情况下使用sep=“;”
的read.csv()
,而不是使用read.csv()
# Import data
data <- read.csv2("/path/to/data.csv", header = TRUE,
na.strings = "", stringsAsFactors = FALSE)
str(data)
'data.frame': 4 obs. of 3 variables:
$ A: chr "AB" "AB" NA NA
$ B: chr "ABC" NA "ADS" NA
$ C: chr "CBS" "ABC" NA "BBB"
# Exclude NAs
as.character(na.exclude(data$A))
[1] "AB" "AB"
#导入数据
数据在数据导入期间,尝试指定参数na.strings
。另外,您可以编写默认情况下使用sep=“;”
的read.csv()
,而不是使用read.csv()
# Import data
data <- read.csv2("/path/to/data.csv", header = TRUE,
na.strings = "", stringsAsFactors = FALSE)
str(data)
'data.frame': 4 obs. of 3 variables:
$ A: chr "AB" "AB" NA NA
$ B: chr "ABC" NA "ADS" NA
$ C: chr "CBS" "ABC" NA "BBB"
# Exclude NAs
as.character(na.exclude(data$A))
[1] "AB" "AB"
#导入数据
数据如果您不想再次读取数据集,可以使用:
# not in ('') or ("")
A <- table$A[!table$A %in% '']
#不在(“”)或(“”)中
A如果您不想再次读取数据集,可以使用:
# not in ('') or ("")
A <- table$A[!table$A %in% '']
#不在(“”)或(“”)中
A前面的空单元格到底是什么.character
???(换句话说,请至少给我们str(table)
)@baptiste,数据是从excel加载的。那么我认为首先有更好的方法读取数据。如果从.xls文件导入数据,excel工作表中的空单元格是什么样子的?这些信息将真正有助于解决您的问题。@flowla,它们是空的。as.character
之前的空单元格到底是什么???(换句话说,请至少给我们str(table)
)@baptiste,数据是从excel加载的。那么我认为首先有更好的方法读取数据。如果从.xls文件导入数据,excel工作表中的空单元格是什么样子的?这些信息确实有助于解决您的问题。@flowla,它们是空的。您是对的,只是为了清楚起见,我在na.exclude
语句之前添加了as.character
。如果没有它,控制台中会有一些额外的输出行(在我们的例子中是不必要的)。@flowla,感谢您提供此选项/解决方案。您是对的,只是为了清楚起见,我在na.exclude
语句之前添加了as.character
。如果没有它,控制台中将有一些(在我们的情况下是不必要的)额外的输出行。@flowla,感谢您提供此选项/解决方案。