以下是我的数据(下载需要几秒钟,请耐心等待):

library(dplyr)
mydata <- "https://pxdata.stat.fi:443/PxWeb/sq/87e44319-48f8-41b4-bd0d-a6629dc7829c" %>%
    paste0(".relational_table") %>% read.table(sep = "\t", header = T)

现在,一些行看起来应该是这样的,例如

> head(mydata)
  Underlying.cause.of.death..ICD.10..3.character.level.   Age Year     Sex Information Deaths
1                                         A00-Y89 Total Total 2022   Total      Deaths  63172
2                                         A00-Y89 Total Total 2022   Males      Deaths  31703
3                                         A00-Y89 Total Total 2022 Females      Deaths  31469
4                                         A00-Y89 Total     0 2022   Total      Deaths     91
5                                         A00-Y89 Total     0 2022   Males      Deaths     52
6                                         A00-Y89 Total     0 2022 Females      Deaths     39

然而,有一些行看起来并不那么好:

> mydata %>% filter(grepl("\t",Underlying.cause.of.death..ICD.10..3.character.level.)) %>% head
                                          Underlying.cause.of.death..ICD.10..3.character.level.   Age Year     Sex Information Deaths
1   A30 Leprosy (Hansens disease)\tTotal\t2022\tTotal\tDeaths\t0\nA30 Leprosy (Hansens disease) Total 2022   Males      Deaths      0
2 A30 Leprosy (Hansens disease)\tTotal\t2022\tFemales\tDeaths\t0\nA30 Leprosy (Hansens disease)     0 2022   Total      Deaths      0
3       A30 Leprosy (Hansens disease)\t0\t2022\tMales\tDeaths\t0\nA30 Leprosy (Hansens disease)     0 2022 Females      Deaths      0
4   A30 Leprosy (Hansens disease)\t1 - 4\t2022\tTotal\tDeaths\t0\nA30 Leprosy (Hansens disease) 1 - 4 2022   Males      Deaths      0
5 A30 Leprosy (Hansens disease)\t1 - 4\t2022\tFemales\tDeaths\t0\nA30 Leprosy (Hansens disease) 5 - 9 2022   Total      Deaths      0
6   A30 Leprosy (Hansens disease)\t5 - 9\t2022\tMales\tDeaths\t0\nA30 Leprosy (Hansens disease) 5 - 9 2022 Females      Deaths      0

有什么 idea ,为什么会发生这样的事情?如果Read.table应该使用"\t"作为列分隔符,那么它为什么要粘贴原始行,如下所示,而这种情况只发生在某些行上?

有没有更好的函数可以正确地将这些数据读取到表中?

(我正在使用Windows 10,如果这可能与这个问题有关的话.)

推荐答案

这是一个与Hansen's disease中的一些单引号(或双引号)有关的问题,这会使read.table认为整行都在同一个单元格中.将quote = ""作为参数添加到read.table会忽略所有引号字符.

mydata <- read.table(mydata, sep = "\t", header = T, quote = "")

Raw data

library(dplyr)
mydata <- "https://pxdata.stat.fi:443/PxWeb/sq/87e44319-48f8-41b4-bd0d-a6629dc7829c" %>%
  paste0(".relational_table")

R相关问答推荐

从具有随机模式的字符串中提取值

使用对管道内单元格的引用生成新变量

单击 map 后,将坐标复制到剪贴板

如何计算前一行的值,直到达到标准?

在"gt"表中添加第二个"groupname_col",而不连接列值

根据元素和前一个值之间的差值过滤矩阵的元素

如何使用ggplot对堆叠条形图进行嵌套排序?

跨列查找多个时间报告

将统计检验添加到GGPUBR中的盒图,在R

带RStatix的Wilcoxon环内检验

避免在图例中显示VLINS组

是否有一个R函数可以输出在输入的字符向量中找到的相应正则表达式模式?

随机将数据帧中特定列上的某些行设置为NA

在同一单元格中创建包含整数和百分比的交叉表

如果满足条件,则替换列的前一个值和后续值

使用同一行中的前一个值填充R矩阵中的缺失值

使用LAG和dplyr执行计算,以便按行和按组迭代

在鼠标悬停时使用Plotly更改geom_point大小

R:水平旋转图

Package emMeans:如果emmip模型中包含的变量较少,emMeans模型中的其他变量设置为什么?