我有一个CSV文件
Identity,Number,Data,Result,Add,,,,,,,,,,,,
1,,,,4,55,,92,,,,,,,,,62,
3,,,,7,43,,12,,,,,,,,,74,
7,,,,3,58,,52,,,,,,,,,64,
0,,,,6,10,,22,,,,,,,,,96,
3,,,,8,13,,92,,,,,,,,,22,
Run Code Online (Sandbox Code Playgroud)
如何删除R中的空列?
期望的输出
Identity,Number,Data,Result,Add
1,4,55,92,62
3,7,43,12,74
7,3,58,52,64
0,6,10,22,96
3,8,13,92,22
Run Code Online (Sandbox Code Playgroud)
导入数据后(使用其他回答者建议的方法)运行此命令,替换mydf您决定调用数据框的任何内容:
#Remove empty columns
mydf <- Filter(function(x)!all(is.na(x)), mydf)
Run Code Online (Sandbox Code Playgroud)
加载数据文件,不包括标题行:
mydf <-
read.csv(text='Identity,Number,Data,Result,Add
1,,,,4,55,,92,,,,,,,,,62,
3,,,,7,43,,12,,,,,,,,,74,
7,,,,3,58,,52,,,,,,,,,64,
0,,,,6,10,,22,,,,,,,,,96,
3,,,,8,13,,92,,,,,,,,,22,', header=FALSE, skip=1)
Run Code Online (Sandbox Code Playgroud)
然后仅加载标题行:
n <- read.csv(text='Identity,Number,Data,Result,Add', header=TRUE)
Run Code Online (Sandbox Code Playgroud)
然后使用名称 fromn为完整数据分配名称,不包括NA列:
setNames(mydf[,sapply(mydf, function(x) all(!is.na(x)))],names(n))
Run Code Online (Sandbox Code Playgroud)
请注意,如果您将其保存为文件,则完整代码应为:
mydf <- read.csv('file.csv', header=FALSE, skip=1)
n <- read.csv('file.csv', header=TRUE, nrows=1)
setNames(mydf[,sapply(mydf, function(x) all(!is.na(x)))],names(n))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10857 次 |
| 最近记录: |