将字符串转换为R中的表

时间:2018-02-08 18:20:32

标签: r

我对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.frameas.numericlapplynoquote和其他功能,但找不到答案。

结果应为:

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

提前谢谢。

2 个答案:

答案 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