3

我正在尝试使用循环在 R 中创建字符串向量,但是遇到了一些麻烦。任何人都可以提供任何帮助,我将不胜感激。

我正在使用的代码更详细一些,但我尝试在此处编写一个可重现的示例,该示例捕获所有关键位:

vector1<-c(1,2,3,4,5,6,7,8,9,10)
vector2<-c(1,2,3,4,5,6,7,8,9,10)
thing<-character(10)


for(i in 1:10) {
  line1<-vector1[i]
  line2<-vector2[i]
  thing[i]<-cat(line1,line2,sep="\n") 
}

R 然后打印出以下内容:

1
1

Error in thing[i] <- cat(line1, line2, sep = "\n") : 
  replacement has length zero

我想要实现的是一个字符向量,其中每个字符分成两行,thing[1]例如

1
1

并且thing[2]

2
2

等等。有谁知道我该怎么做?

4

1 回答 1

9

cat打印到屏幕上,但它返回NULL- 要连接到新的字符向量,您需要使用paste

  thing[i]<-paste(line1,line2,sep="\n") 

例如在交互式终端中:

> line1 = "hello"
> line2 = "world"
> paste(line1,line2,sep="\n") 
[1] "hello\nworld"
> ret <- cat(line1,line2,sep="\n") 
hello
world
> ret
NULL

尽管请注意,在您的情况下,整个 for 循环可以替换为更简洁有效的行:

thing <- paste(vector1, vector2, sep="\n")
#  [1] "1\n1"   "2\n2"   "3\n3"   "4\n4"   "5\n5"   "6\n6"   "7\n7"   "8\n8"  
#  [9] "9\n9"   "10\n10"
于 2013-01-24T15:35:11.900 回答