r - 在 R 中导入和清理文本文件
问题描述
我在以下格式的文本文件中有数据。
(0.00, 1.00), (1.00, 0.93), (2.00, 0.86), (3.00, 0.8), (4.00, 0.75), (5.00, 0.7), (6.00, 0.65), (7.00, 0.6), (8.00 , 0.56), (9.00, 0.52), (10.0, 0.49)
括号内的第一个元素是 x,第二个元素是 y。如何创建具有以下格式的矩阵。
x y
0 1
1 0.93
2 0.86
3 0.8
4 0.75
我尝试了 read.table 的变体,但没有成功。将不胜感激任何帮助。
解决方案
首先,我们将您的字符串保存为文件,以便解决方案可重现:
str0 <- "(0.00, 1.00), (1.00, 0.93), (2.00, 0.86), (3.00, 0.8), (4.00, 0.75), (5.00, 0.7), (6.00, 0.65), (7.00, 0.6), (8.00, 0.56), (9.00, 0.52), (10.0, 0.49)"
file1 <- "str1.xt"
write(str0,file1)
解决方案:
x <- scan(file1, character())
x <- as.numeric(gsub("[(,)]","",x))
x <- matrix(x,ncol = 2,byrow = TRUE,dimnames = list(NULL,c("x","y")))
as.data.frame(x)
# x y
# 1 0 1.00
# 2 1 0.93
# 3 2 0.86
# 4 3 0.80
# 5 4 0.75
# 6 5 0.70
# 7 6 0.65
# 8 7 0.60
# 9 8 0.56
# 10 9 0.52
# 11 10 0.49
替代解决方案:
x <- gsub("), (",", ",scan(file1, character(),sep="_"),fixed = T)
as.data.frame(eval(parse(text=paste0("matrix(c",x,",ncol = 2,byrow = TRUE,dimnames = list(NULL,c('x','y')))"))))
推荐阅读
- go - 如何从 Go Gin 上下文中找到请求方法?
- ios - AVAssetExportSession 导出视频 AVFoundationErrorDomain Code=-11841 错误
- jquery - 为什么 $.post 的数据为空
- python - 创建 ctypes 数组以使用 sendinput 发送扩展扫描码
- javascript - 如何使用 Node.js 将“\n”写为文件内的值
- html - Create a table of subject using html and ruby
- flutter - How to fetch user's current location using HERE maps in flutter?
- docker - ldd: exited with unknown exit code when use qemu in docker
- c# - NLog 不登录 ASP.NET Core 控制器
- javascript - 看不到从 Chrome 扩展到 Laravel Logger 的结果