我对R完全是新手,我正在制作一个程序来解决字符串系统,例如:
my_string <- "3x+2y=0; -1x+4y=-1; 13x-2y=11"
只有一件事阻止我完成它。
在一些替换说明后,我可以获得这个字符串:
my_string <- "3, 2, 0, -1, 4, -1, 13, -2, 11"
我想构建一个3*3
表,但无法将此字符串转换为能够让我这样做的形式(向量)。我尝试过data.frame
,as.numeric
,lapply
,noquote
和其他功能,但找不到答案。
结果应为:
x <- matrix(c(my_string), ncol=3,nrow=3,byrow=TRUE)
x
# [,1] [,2] [,3]
# [1,] 3 2 0
# [2,]-1 4 -1
# [3,]13 -2 11
提前谢谢。
答案 0 :(得分:1)
您可以使用scan
来解析文件或字符向量中的分隔值。
matrix(scan(text = my_string, sep = ",", what = 1L), ncol = 3, byrow = TRUE)
#Read 9 items
# [,1] [,2] [,3]
#[1,] 3 2 0
#[2,] -1 4 -1
#[3,] 13 -2 11
答案 1 :(得分:0)
您应该根据逗号分配用户strsplit
,然后将其转换为数字值
vals <- as.numeric(strsplit(my_string, ",")[[1]])
x <- matrix(vals, ncol=3,nrow=3,byrow=TRUE)
x
# [,1] [,2] [,3]
# [1,] 3 2 0
# [2,] -1 4 -1
# [3,] 13 -2 11