You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中导入含空格字符串的空格分隔数据集且不拆分字符串

解决R中导入含空格字符串的CSV文件问题

问题背景

我有一个大型CSV文件,每行所有数据都在单个单元格内,以空格分隔。数据包含数值和字符串,但导入R时,原本属于单个变量的带空格字符串(比如"Gadus Morhua")会被错误拆分成多列,导致数据结构混乱。

原始数据示例

Survey "SiteNo" "CODE" "Species_name" "Length" "Sex" "Age" "Station" "lonitude" "latitude" "Date" "Weight"  
1 "T 19/11" 45 "MMM" "Gadus Morhua" 80 "U" NA "F5" -7.979 50.837 2011-11-14 4   
2 "T 20/14" 20 "MNE" "Homarus Gammarus" 75 "U" "0" 1 -2.501 50.216 2014-10-02 3

注:每行代表一条完整记录,所有数据都在单个单元格中。

期望的正确数据格式

SurveySiteNoCODESpecies_nameLengthSexAgeStationlonitudelatitudeDateWeight
T 19/1145MMMGadus Morhua80UNAF5-7.97950.8372011-11-144
T 20/1420MNEHomarus Gammarus75U01-2.50150.2162014-10-023

解决方案

你的数据中带空格的字段是用双引号包裹的,只需在导入时指定识别双引号作为字段边界,就能避免带空格的字符串被拆分。

方法1:基础R的read.table()函数

data <- read.table("your_file.csv", header = TRUE, quote = "\"", stringsAsFactors = FALSE)
  • header = TRUE:指定第一行为列名
  • quote = "\"":告知R双引号内的内容是完整字段,即使包含空格
  • stringsAsFactors = FALSE:避免字符串被自动转为因子(R新版本默认已启用,可按需省略)

方法2:readr包的read_table()函数

如果使用tidyverse工具链,readr包的函数处理大型文件更高效:

library(readr)
data <- read_table("your_file.csv", quote = "\"")

read_table()默认识别空格分隔,指定quote参数后会正确解析带空格的引号字段,同时处理大文件速度更快。

验证结果

导入后可通过str(data)查看数据结构,确认Species_name、SiteNo等带空格字段是单个字符变量,未被拆分。

内容的提问来源于stack exchange,提问作者greentea_678

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:58:46