我想从一个文件中将数据导入到R中,其中一些记录被分成两部分。数据来自数据库导出,用户很可能在文本字段中输入了回车符。记录已正确集成到数据库中,因为它是以XML格式接收的。导出问题出现在CSV2格式的txt文件中恢复回车时
这是一个说明性的虚构示例
"大黄蜂&#34 ;; "秃鹰&#34 ;; "鸭子&#34 ;; "金丝雀&#34 ;; "鲤鱼&#34 ;; "鹿&#34 ;; "麂皮" " A"鸟&#34 ;; "一匹马&#34 ;; "一只狗&#34 ;; "一只母鸡&#34 ;; "一只猫&#34 ;;的""
"鱼&#34 ;; "蜜蜂"
"羊羔&#34 ;; "老鹰&#34 ;; "云雀&#34 ;; "鸵鸟&#34 ;; "一个酒吧&#34 ;; "一个伍德考克&#34 ;; "水牛"。
第二个记录是在第六个字段切断," a" 在第2行然后在第3行" fish&#34 ;; "蜜蜂"。
您是否有解决方案(手动删除回车除外)以便能够将此类数据正确导入R中。
提前谢谢! 玛丽。
答案 0 :(得分:0)
可以实现使用readLines
和dplyr
包的解决方案。由于OP没有提供明确的规则来决定行的完整性,因此下面的解决方案假设row
如果以;
结尾则完成。
A) filedata.txt
的内容解决方案:
library(dplyr)
df <- data.frame(fileText = readLines("filedata.txt"), stringsAsFactors = FALSE)
tidy_text <- df %>% mutate(IsComplete = grepl(";$",df$fileText)) %>%
group_by(SameRow = cumsum(lag(IsComplete, default=1))) %>%
summarise(fileText = paste0(trimws(fileText), collapse=" "))
<强>结果:强>
tidy_text$fileText
#[1] "\"a bumblebee\"; \"a buzzard\"; \"a duck\"; \"a canary\"; \"a carp\"; \"a deer\"; \"a chamois\" \"A \"bird\"; \"a horse\";"
#[2] "\"a dog\"; \"a hen\"; \"a cat\"; \"a\" \"fish\"; \"a bee\" \"A lamb\"; \"an eagle\"; \"a lark\"; \"an ostrich\"; \"a bar\"; \"a woodcock\"; \"a buffalo\";"
数据:强>
内容filedata.txt
"a bumblebee"; "a buzzard"; "a duck"; "a canary"; "a carp"; "a deer"; "a chamois" "A "bird"; "a horse";
"a dog"; "a hen"; "a cat"; "a"
"fish"; "a bee"
"A lamb"; "an eagle"; "a lark"; "an ostrich"; "a bar"; "a woodcock"; "a buffalo";
B) filedata2.txt
内容的解决方案。每行/观察以extraction;
df <- data.frame(fileText = readLines("filedata2.txt"), stringsAsFactors = FALSE)
tidy_text2 <- df %>% mutate(IsComplete = lead(grepl("^extraction;.*", df$fileText),
default = TRUE)) %>%
group_by(SameRow = cumsum(lag(IsComplete, default=1))) %>%
summarise(fileText = paste0(trimws(fileText), collapse=" "))
结果#2:数据已在3次观察中汇总。
tidy_text2
# A tibble: 3 x 2
# SameRow fileText
# <int> <chr>
# 1 1 extraction;xxxx bvbbv ncnncbvbbv;fdrggggqggqhh;-276654.00;;-657321.00
# 2 2 extraction;fhdh bvbbv dsmfdjjf fdhhhhdf;hqshfdsjf sdkfjdfjkdkfj ;;-547743.00,-432743.00
# 3 3 extraction;shdfgqs bvbbv dsmfdjjf fdhhhhdf;hqshfdsjf sdkfjdfjkdkfj;;-547743.00;-432743.00
数据:filedata2.txt
extraction;xxxx bvbbv ncnncbvbbv;fdrggggqggqhh;-276654.00;;-657321.00
extraction;fhdh bvbbv dsmfdjjf
fdhhhhdf;hqshfdsjf sdkfjdfjkdkfj
;;-547743.00,-432743.00
extraction;shdfgqs bvbbv dsmfdjjf fdhhhhdf;hqshfdsjf sdkfjdfjkdkfj;;-547743.00;-432743.00