【问题标题】:Is there a way to use a variable without the need of defining it (in R)?有没有一种方法可以使用变量而不需要定义它(在 R 中)?
【发布时间】:2014-02-24 09:55:09
【问题描述】:

我使用以下代码:

tempdata <- rbind(tempdata,newdata)  # bind rowwise

据我所知,需要定义临时数据(如所有对象、变量……)。因为只有数值,所以我定义为tempdata&lt;-0。这不是一个真正的大问题,但是当之后使用 rbind 时,0 的第一行被保留在第一位,我必须使用某种

tempdata<-tempdata[-1,] # deletes first row

我不能将它定义为tempdata&lt;-'',因为这将是一个字符,对吧?

正如我所说,这对我来说不是问题,但是否有更好的方法,特别是如果我或某人会在代码中多次使用rbind(),因此可能必须“清除”第一行不止一次……

使用cbind() 时可能会出现同样的问题。

也许有人知道更好的解决方案?

【问题讨论】:

  • 定义tempdata &lt;- numeric(0),然后rbind/cbind 结果将不包含不需要的数据。
  • @tonytonov:谢谢,我会试试这个,应该可以!
  • tempdata &lt;- NULL 也可以使用
  • @jbaums:竖起大拇指!谢谢

标签: r variables rbind cbind


【解决方案1】:

如果您使用rbind/cbind 从迭代过程构建一些结果,您可以声明“空”对象来存储数据。对于数字数据,使用numeric(0),它是一个零-长度数字向量。它与任何绑定兼容:

rbind(numeric(0), 1:3)
     [,1] [,2] [,3]
[1,]    1    2    3
cbind(numeric(0), 1:3)
     [,1]
[1,]    1
[2,]    2
[3,]    3

NULL 也是如此(@jbaums 指出)。它甚至可能更方便,因为您不必手动指定数据类型(由于隐式类型转换,同样适用于 numeric(0)):

rbind(NULL, letters[1:3])
     [,1] [,2] [,3]
[1,] "a"  "b"  "c" 

【讨论】:

    猜你喜欢
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 2020-11-19
    相关资源
    最近更新 更多