R 列出示例中的第一个实例

R 列出示例中的第一个实例,r,R,我有一个大数据集(dt),看起来像这样: No Day1 Day2 Day3 Day4 Day5 Day6 Day7 Day8 Day9 Day10 x 0 0 0 0 0 0 0 1 0 0 y 0 0 6 2 0 1 0 0

我有一个大数据集(dt),看起来像这样:

No  Day1    Day2    Day3    Day4    Day5    Day6    Day7    Day8    Day9    Day10
x   0       0       0       0       0       0       0       1       0       0 
y   0       0       6       2       0       1       0       0       0       0
z   0       0       0       0       0       0       0       0       0       0
a   0       0       2       4       1       1       0       0       0       0
我希望R为每一行创建一列向量,其中第一次遇到的日期(即使是列索引也可以)不是零(有些行只有零)。当我以迭代方式(使用浏览器逐行)运行代码时,我的代码(如下)似乎有些笨拙,但当我以循环方式运行代码时,代码似乎不起作用。我得到: if(dt[i,j]>0.5{:参数长度为零时出错 有人能告诉我我做错了什么吗? 谢谢 詹姆斯

days0.5){
像这样

DF <- read.table(text="No  Day1    Day2    Day3    Day4    Day5    Day6    Day7    Day8    Day9    Day10
x   0       0       0       0       0       0       0       1       0       0 
y   0       0       6       2       0       1       0       0       0       0
z   0       0       0       0       0       0       0       0       0       0
a   0       0       2       4       1       1       0       0       0       0", header=TRUE)

cbind.data.frame(No=DF[,1],
                 first=apply(DF[,-1],1, function(x) which(x!=0)[1]))
#   No first
# 1  x     8
# 2  y     3
# 3  z    NA
# 4  a     3
DF
DF <- read.table(text="No  Day1    Day2    Day3    Day4    Day5    Day6    Day7    Day8    Day9    Day10
x   0       0       0       0       0       0       0       1       0       0 
y   0       0       6       2       0       1       0       0       0       0
z   0       0       0       0       0       0       0       0       0       0
a   0       0       2       4       1       1       0       0       0       0", header=TRUE)

cbind.data.frame(No=DF[,1],
                 first=apply(DF[,-1],1, function(x) which(x!=0)[1]))
#   No first
# 1  x     8
# 2  y     3
# 3  z    NA
# 4  a     3
library(reshape2)
DF <- melt(DF)

library(plyr)
ddply(DF, .(No), summarize, first=variable[(value!=0)][1])
#   No first
# 1  a  Day3
# 2  x  Day8
# 3  y  Day3
# 4  z  <NA>