Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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中使用as.character时删除空单元格_R - Fatal编程技术网

在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,感谢您提供此选项/解决方案。