D中如何使用for each语句?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我有一个dataframe,对于该数据帧中的每一行,我必须做一些复杂的查找,并将一些数据附加到文件中。

因此我想做如下工作:

for (well in dataFrame) {
  wellName <- well$name    # string like "H1"
  plateName <- well$plate  # string like "plate67"
  wellID <- getWellID(wellName, plateName)
  cat(paste(wellID, well$value1, well$value2, sep=","), file=outputFile)
}

在我的程序世界里,我会做这样的事情:

for (row in dataFrame) {
    #look up stuff using data from the row
    #write stuff to the file
}

做这件事的“R方式”是什么?

提问于
用户回答回答于

apply()

> d
  name plate value1 value2
1    A    P1      1    100
2    B    P2      2    200
3    C    P3      3    300

> f <- function(x, output) {
 wellName <- x[1]
 plateName <- x[2]
 wellID <- 1
 print(paste(wellID, x[3], x[4], sep=","))
 cat(paste(wellID, x[3], x[4], sep=","), file= output, append = T, fill = T)
}

> apply(d, 1, f, output = 'outputfile')
用户回答回答于

您可以使用by()

by(dataFrame, 1:nrow(dataFrame), function(row) dostuff)

扫码关注云+社区