Return()不工作,而Print()在R中构建函数后不工作

Return()不工作,而Print()在R中构建函数后不工作,r,function,R,Function,我在R中使用面板数据,并努力构建一个函数,返回PCA==1的每个用户ID。我基本上做到了这一点,但有一个小问题:它只在我用print()结束函数时返回值,而在我用return()结束函数时不返回值。因为我希望ID在一个向量中,所以我可以稍后将数据子集为只包含那些ID,这是一个问题。下面反映的代码-有人能就我做错了什么提出建议吗 有效的版本(但不符合我的要求): retrievePCA您的问题是对函数和函数返回的功能的简单误解 以下面的小例子为例 f <- function(x){ x

我在R中使用面板数据,并努力构建一个函数,返回PCA==1的每个用户ID。我基本上做到了这一点,但有一个小问题:它只在我用print()结束函数时返回值,而在我用return()结束函数时不返回值。因为我希望ID在一个向量中,所以我可以稍后将数据子集为只包含那些ID,这是一个问题。下面反映的代码-有人能就我做错了什么提出建议吗

有效的版本(但不符合我的要求):


retrievePCA您的问题是对函数和函数返回的功能的简单误解

以下面的小例子为例

f <- function(x){
  x <- x * x
  return x
  x <- x * x
  return x
}
f(2)
[1] 4
然而,你可以在一行中完成这项工作

data$CPSIDP[data$PCA == 1]

如果您包含一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,那么就更容易为您提供帮助<代码>返回
在函数中只调用一次。一旦
返回
,函数就会退出。也许你只是想
检索PCA谢谢!非常有用。:-)
f <- function(x){
  x <- x * x
  return x
  x <- x * x
  return x
}
f(2)
[1] 4
retrievePCA<-function(data) {
  ids <- vector('list', nrow(data))
  for (i in 1:nrow(data)) {
    if (data$PCA[i] == 1) {
      ids[[i]] <-data$CPSIDP[i]
    } 
  }
  return unlist(ids)
}
data$CPSIDP[data$PCA == 1]