将自定义函数应用于R中的列

时间:2018-02-05 16:22:35

标签: r apply

这是我的代码,我希望它在每列的第二位插入零,但它不起作用。

g.V().has('name', 'property_value').headOption

我该如何解决?

P.S。这只是简化的例子。实际功能更复杂。

4 个答案:

答案 0 :(得分:1)

您可以用零替换整个第二行:

my_df[2, ] <- 0 

请注意my_df是一个包含行和列的data.frame

答案 1 :(得分:1)

您只使用当前函数返回每列中的第二个值。此更改将使第二个值为0但仍然完整地返回每个列:

insert_zero <- function(smpl_vec){
  smpl_vec[2] <- 0
  return(smpl_vec)
}

my_df = data.frame('col_1'= c(1,2,3), 'col_2'= c(2,3,4))
apply(my_df, 2, insert_zero)

答案 2 :(得分:1)

return(smpl_vec[2]<-0)不会返回修改后的矢量

insert_zero <- function(smpl_vec){
  smpl_vec[2]<-0
  return(smpl_vec)
}

答案 3 :(得分:1)

感谢您提出这个问题。在寻找解决方案时,我确实学到了一些新东西。为单元格分配新值时

 1)  use '<' twice. Below is the statement
 2)  mention the dataframe row and column numbers as mentioned. Below is the modified code

    insert_zero <- function(smpl_vec){
               my_df[2,smpl_vec] <<- 0

            }

          my_df = data.frame('col_1'= c(1,2,3), 'col_2'= c(2,3,4))
          sapply(1:ncol(my_df), function(smpl_vec) insert_zero(smpl_vec))