所以,我有一个这样的文件(约500行)。
V1 V2 1 2 3 4 5 6 7 8 9 10
2 171 192 1 1 0 1 0 0 0 0 0 0
31 72 469 1 0 0 1 1 0 0 0 0 0
32 72 327 1 0 0 1 1 0 1 0 0 0
34 66 443 1 0 1 1 0 0 0 0 0 1
50 747 353 1 1 0 1 0 0 0 0 0 0
53 476 443 1 1 0 0 0 0 1 0 0 0
57 1259 1260 1 0 0 0 0 0 0 1 1 0
66 575 571 1 1 1 1 1 0 0 1 0 0
84 407 1645 1 0 1 1 0 1 0 0 0 0
87 120 1067 1 1 1 0 0 0 0 0 0 0
90 871 280 1 1 0 0 1 0 0 0 0 0
95 1862 1656 1 0 1 1 0 0 0 0 0 0
......................................
我有一个接受字符串的功能,例如" 110100101010"。现在,我想要做的是将每行的列[1-10]中的数字传递给该函数。
示例:函数将首先应用于第一行,列[1-10]。然后它将应用于第二行,列[1-10] .......直到最后一行,列[1-10]。我的意思是,对于每一行,列[1-10]中的数字将被视为函数接受的字符串。
如何在R?中编写?
答案 0 :(得分:1)
可以(按照你在评论中的建议)创建cols 3:12的附加列,然后在其上应用你的功能
如果您的数据名为data
并且函数名为f
,那么
data$pattern <- apply(data[, 3:12], 1, paste, collapse = "")
sapply(data$pattern, f)
答案 1 :(得分:0)
因此,如果让df
成为您data.frame
和col
的{{1}}和data.frame
您的职能部分,那么您可以这样做:
foo
要以编程方式执行此操作,您可以执行此操作:
foo(cat(df$col, sep=""))
答案 2 :(得分:0)
怎么样......
bunnies <- as.vector(t(mydata[3:12]))
paste(bunnies, collapse = '')
我用它来解决类似的问题而且效果很好。我假设您的函数可以一次获取所有行值,如果没有,那么您可以编写一个函数来逐个遍历每一行并运行此操作。