【问题标题】:Trouble turning a text file with a character string into a column with one character per row in R无法将带有字符串的文本文件转换为 R 中每行一个字符的列
【发布时间】:2022-01-09 07:28:30
【问题描述】:

我对 R 比较陌生,正在尝试将具有长字符串的文本文件转换为数据表的单列,每行一个字符。我尝试使用 readr 包中的 read_file 读取文本文件,然后将字符串设为列表,最后使用 cbind,如下所示:

df <- data.frame("id" = 1:9)
string <-read_file("StringFilePath.txt")
string <- as.list(string)
df <- cbind(df, string)

不幸的是,我最终得到了数据框第一行中字符串中的所有字符。我还尝试过,也许是被误导了,在每个字符之间添加一个逗号,然后创建一个 .csv 文件,我可以更轻松地使用如下:

string <- gsub("(?<=.)(?=.)", ",", string, perl = TRUE)
write.csv(string, "StringFilePath.csv",
          row.names = FALSE)

但是,由于我无法理解的原因,.csv 最终在第一行中包含大约一半的字符。对于这个看似简单的问题的解决方案的任何建议将不胜感激!

【问题讨论】:

    标签: r string strsplit


    【解决方案1】:

    您可以使用strsplit。请注意 strsplit 返回一个列表,因此您必须将其转换为字符向量

    string <- "jasdklnjabfial"
    data.table::data.table(x = unlist(strsplit(string, "")))
    #>     x
    #>  1: j
    #>  2: a
    #>  3: s
    #>  4: d
    #>  5: k
    #>  6: l
    #>  7: n
    #>  8: j
    #>  9: a
    #> 10: b
    #> 11: f
    #> 12: i
    #> 13: a
    #> 14: l
    

    【讨论】:

      猜你喜欢
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多