R 列出示例中的第一个实例
我有一个大数据集(dt),看起来像这样: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
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>