无法将带有字符串的文本文件转换为 R 中每行一个字符的列
Trouble turning a text file with a character string into a column with one character per row in R
我是 R 的新手,我正在尝试将具有长字符串的文本文件转换为数据的单列 table,每行一个字符。我尝试使用 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 最终在第一行中包含了大约一半的字符。对于解决这个看似简单的问题的任何建议,我们将不胜感激!
您可以使用 strsplit
。请注意 strsplit
returns 一个列表,因此您必须将其转换为字符向量
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
我是 R 的新手,我正在尝试将具有长字符串的文本文件转换为数据的单列 table,每行一个字符。我尝试使用 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 最终在第一行中包含了大约一半的字符。对于解决这个看似简单的问题的任何建议,我们将不胜感激!
您可以使用 strsplit
。请注意 strsplit
returns 一个列表,因此您必须将其转换为字符向量
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