[英]apply custom function to columns in R
這是我的代碼,我希望它可以將零插入每列的第二位,但是它不起作用。
insert_zero <- function(smpl_vec){
return(smpl_vec[2]<-0)
}
my_df = data.frame('col_1'= c(1,2,3), 'col_2'= c(2,3,4))
apply(my_df, 2, insert_zero)
我該如何解決?
PS這只是簡化的示例。 實際功能更加復雜。
您可以將整個第二行替換為零:
my_df[2, ] <- 0
請注意, my_df
是具有行和列的data.frame
您只需使用當前函數在每一列中返回第二個值。 此更改將使第二個值變為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)
return(smpl_vec[2]<-0)
不返回修改后的向量
insert_zero <- function(smpl_vec){
smpl_vec[2]<-0
return(smpl_vec)
}
感謝您提出這個問題。 在尋找解決方案時,我確實學到了一些新知識。 在為單元格分配新值時
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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.