将df列中的字符串值粘贴到函数中

时间:2017-11-17 23:54:29

标签: r string loops paste

我在R中有一个数据集如此组织:

             x freq
1 PRODUCT10000    6
2 PRODUCT10001   20
3 PRODUCT10002   11
4 PRODUCT10003    4
5 PRODUCT10004    1
6 PRODUCT10005    2

然后,我有一个像

这样的功能
fun <- function(number, df1, string, df2){NormC <- as.numeric(df1[string, "normc"])
    df2$NormC <- rep(NormC)} 

如何迭代我的df并将"x"的每个值插入到函数中?

我认为问题是函数的这部分(有4个输入变量)的结构类似于NormC <- as.numeric(df[string, "normc"])

1 个答案:

答案 0 :(得分:0)

正如@duckmayr所解释的那样,您不需要遍历列x。以下是创建新变量的示例。

df <- read.table(text = "             x freq
1 PRODUCT10000    6
2 PRODUCT10001   20
3 PRODUCT10002   11
4 PRODUCT10003    4
5 PRODUCT10004    1
6 PRODUCT10005    2", header = TRUE)
fun <- function(string){paste0(string, "X")} # example 
# option 1
df$new.col1 <- fun(df$x) # see duckmayr's comment
# option 2
library(data.table)
setDT(df)[, new.col2 := fun(x)]