【问题标题】:How do I create an empty vector in r? [duplicate]如何在 r 中创建一个空向量? [复制]
【发布时间】:2021-01-17 09:29:22
【问题描述】:

在 Matlab 中,创建一个稍后将被填充的空向量如下所示:

v2 = []

我如何在 r 中做同样的事情?当满足条件时,我将使用这个空向量来填充它。我不知道它未来的长度。作为参考,这是我在 r 中的代码。

dfx <- read.csv("AllDataNewConversions.csv",header = TRUE, sep =",",check.names=FALSE) 
df <- na.omit(dfx) # removes NA 

v2 <- {}
new_val <- {}
for (i in 1:length(df)){ 
  if (df$Texture[i] == 'Silt Loam'){ 
    new_val <- df$`pH 1:1`[i]}
  v2[i] <- new_val
}

【问题讨论】:

  • 这能回答你的问题吗? How to create an empty R vector to add new items
  • 您通常不应该。创建一个空向量并附加到它是一种反模式,因为它效率低下并且不必要地冗长。这不仅在 R 中是正确的:它是一个普遍的原则。
  • 我认为这里不需要循环。如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。

标签: r


【解决方案1】:

有几种方法可以在 r 中创建空向量。例如,

v2<-NULL

v2<-c()

试试这个:

v2 <- NULL

for (i in 1:length(df)){ 
if (df$Texture[i] == 'Silt Loam'){ 
  new_val <- df$`pH 1:1`[i]}
v2[i] <- new_val
}

【讨论】:

    猜你喜欢
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多