样品
var words = "apple;banana;apple, banana;fruit"
var result = words.split(';');
console.log(result);
我有fileABC和fileQWE。首先,这些文件包含我要消除的随机*。其次,我想读入R的两个文件并将它们另存为fileABC和fileQWE。然后,我想创建数据帧WANT,该数据帧将两个文件中的var1和两个文件中的var2组合在一起,并根据其来源,使新变量“ source”等于fileABC或fileQWE。我进行了尝试,但是您可以运行并看到它不起作用。
答案 0 :(得分:1)
我们可以使用bind_rows
并用parse_number
提取数字元素
library(tidyverse)
bind_rows(lst(fileABC, fileQWE), .id = 'source') %>%
mutate_at(vars(starts_with("var")),
list(~ readr::parse_number(as.character(.))))
或使用base R
lst1 <- mget(ls(pattern = "^file"))
out <- do.call(rbind, Map(cbind, lst1, source = names(lst1)))
row.names(out) <- NULL
out[2:3] <- lapply(out[2:3], function(x) as.numeric(sub("*", "", x, fixed = TRUE)))
如果我们想直接从.csv
文件中读取文件(假设文件位于工作目录中)
files <- list.files(pattern = ".csv")
names(files) <- str_remove(files, "\\.csv")
library(readr)
imap_dfr(files, ~ read.csv(.x) %>%
mutate_at(vars(starts_with("var")),
list(~ readr::parse_number(.))) %>%
mutate(source = .y))