1. Learn
  2. /
  3. 课程
  4. /
  5. R 中级

Connected

道练习

应用返回 NULL 的函数

在之前所有练习中,我们都默认对向量和列表应用的函数会返回有意义的结果。比如,tolower() 函数会将字符串转换为小写后返回。但情况并不总是如此。假设您想查看列表中每个元素的结构,可以使用 str() 函数,它会返回 NULL:

lapply(list(1, "a", TRUE), str)

这个调用实际上会返回一个与输入列表大小相同的列表,里面全是 NULL 值。另一方面,单独调用

str(TRUE)

只会在控制台打印该逻辑值的结构,而不是返回 NULL。这是因为 str() 在幕后使用了 invisible(),它会返回返回值的"不可见副本",此处为 NULL。当未对 str() 的结果进行赋值时,这可防止其被打印。

下面这段代码会返回什么(split_low 已在工作区可用)?请先思考再在控制台运行!

lapply(split_low, function(x) {
  if (nchar(x[1]) > 5) {
    return(NULL)
  } else {
    return(x[2])
  }
})

说明

50 XP

答案选项