首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法导入单独行中包含的文本列数据

无法导入单独行中包含的文本列数据
EN

Stack Overflow用户
提问于 2022-01-24 07:44:35
回答 1查看 31关注 0票数 2

我有这种txt格式的原始数据:

代码语言:javascript
复制
Name|Occupation|Comment
Robert|Doctor|To process, please provide:
a. Tax Returns
b. Identification
c. Statement of Approval
Sally|Accountant|Approved

在这里,|是分隔符。

对于罗伯特,我想“处理,请提供: a.纳税申报表b.标识c.批准声明”作为一个字符串反映在Comment下。

但是,使用read.csv导入具有以下参数:

代码语言:javascript
复制
read.csv(
    "data/text_data",
    fileEncoding = "UTF-8",
    sep = "|",
    na.strings = "",
    quote = ""
  )

给出了更多的行

代码语言:javascript
复制
Name                        Occupation    Comment
Robert                      Doctor        To process, please provide:
a. Tax Returns              NA            NA
b. Identification           NA            NA
c. Statement of Approval    NA            NA
Sally                       Accountant    Approved

是否有任何R导入函数或争论技巧来解决这个问题?Tidyverse解决方案是非常可取的,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-01-24 08:19:46

使用"id"在临时by列上拆分数据、应用转换和重新组合是一个简单的选项。为了方便起见,您可以将其封装在一个函数中。

代码语言:javascript
复制
myDataReader <- \(link) {
  r <- read.csv(link, fileEncoding="UTF-8", sep="|", na.strings="", quote="")
  r$id <- cumsum(!is.na(r$Occupation))
  do.call(what=rbind, by(r, r$id, \(x) {
    cbind(x[1, 1:2], Comment=trimws(paste(x[1, 3], toString(x[-1, 1]))))
  }))
}

myDataReader('data/text_data')
#     Name Occupation                                                                                 Comment
# 1 Robert     Doctor To process, please provide: a. Tax Returns, b. Identification, c. Statement of Approval
# 2  Sally Accountant                                                                                Approved
# 3    Tom     Lawyer                           To process, please provide: a. Tax Returns, b. Identification
# 4  Sally Accountant                                                                                Approved

注: R>= 4.1已使用。

'data/text_data'__的内容:

代码语言:javascript
复制
Name|Occupation|Comment
Robert|Doctor|To process, please provide:
a. Tax Returns
b. Identification
c. Statement of Approval
Sally|Accountant|Approved
Tom|Lawyer|To process, please provide:
a. Tax Returns
b. Identification
Sally|Accountant|Approved
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70830488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档