R:apply()中的自定义功能

时间:2016-06-17 05:47:26

标签: r

第一次在这里用户!我只是在学习R并且我希望这是一个简单的问题。我有一系列数字,数字,我会确保没有数字大于一。我正在努力

myfct <- function(x) {
  if ( x > 1.0 ) x = 1.0
  return(x)
}
apply(nums, 1, myfct)

但是我得到了这个错误

Error in apply(nums, 1, myfct) : 
dim(X) must have a positive length

我做错了什么,有更好的方法吗?谢谢!

2 个答案:

答案 0 :(得分:3)

我们可以使用replace

replace(nums, nums > 1, 1)

答案 1 :(得分:1)

请改为尝试:

 nums[] <- pmin(nums, 1)

pmax是一个“并行化”的最大值,因此任何大于1的值都会被替换为1.如果[]是原子向量,那么可能没有nums