如何在R语言中将含数字的文本文件读取为数值向量?
读取文本文件为数值向量的解决方案
1. 修正scan的参数使用
你之前写的what="numeric"是错误的,what参数需要传入数值类型的实例,而非字符串。正确写法:
data <- scan(file="./logs_formatted/Packets_Delivered_Poll_Formatted.log", what = numeric())
要是文件里全是纯数字,甚至可以省略what参数,scan默认会读取数值:
data <- scan(file="./logs_formatted/Packets_Delivered_Poll_Formatted.log")
2. 适配逗号分隔的格式
如果文件内容是1, 2, 10, 15这种逗号分隔的形式,只要指定分隔符就行:
data <- scan(file="./logs_formatted/Packets_Delivered_Poll_Formatted.log", sep = ",")
逗号后的空格scan会自动忽略,不用额外处理。
3. 转换已有的字符向量
要是已经读入了字符类型的向量,直接用as.numeric()转成数值:
data <- as.numeric(data)
如果向量里混了非数字内容,转换后会出现NA,可以用na.omit()剔除缺失值:
data <- na.omit(as.numeric(data))
4. 用read.table作为替代方案
如果scan还是不好用,试试read.table读取后转成向量:
data_df <- read.table(file="./logs_formatted/Packets_Delivered_Poll_Formatted.log") data <- as.vector(data_df$V1)
逗号分隔的情况同样指定sep=",":
data_df <- read.table(file="./logs_formatted/Packets_Delivered_Poll_Formatted.log", sep=",") data <- as.vector(data_df$V1)
内容的提问来源于stack exchange,提问作者Mike I
相关产品推荐
相关产品推荐

