2

定義された番号 (たとえば 2) が表示される行を初めて検索したいのですが?

例えば:

group <- c("a", "a", "a", "a", "a", "b", "b", "b", "b", "b")
value <- c(1, 1, 2, 2, 1, 1, 2, 1, 2, 3)
GOAL <- c("FALSE", "FALSE", "TRUE", "FALSE", "FALSE", "FALSE", "TRUE", "FALSE", "FALSE", "FALSE")
data <- data.frame(group, value, GOAL)
data

「GOAL」列には結果が表示されます。よろしくお願いいたします。

4

2 に答える 2

2

groupこの方法では、それぞれに少なくとも 1 つの 2 があると想定されます。サンプル データはグループ別に並べられていますが、ここで使用されるアプローチはこれに依存しません。

# given vector v, return vector of FALSEs, except at the first 2
f <- function(v) replace(logical(length(v)), which(v == 2)[1], TRUE)
transform(data, GOAL=as.logical(ave(value, group, FUN=f)))
#    group value  GOAL
# 1      a     1 FALSE
# 2      a     1 FALSE
# 3      a     2  TRUE
# 4      a     2 FALSE
# 5      a     1 FALSE
# 6      b     1 FALSE
# 7      b     2  TRUE
# 8      b     1 FALSE
# 9      b     2 FALSE
# 10     b     3 FALSE

常に数値ベクトルを返すため、/as.logicalが必要な場合はへの呼び出しが必要です。がなければ、0 と 1 を取得します。TRUEFALSEaveas.logical

于 2013-03-28T08:49:08.763 に答える
0

または、あなたはただすることができます

valueFirst <- 2
data[data$value==valueFirst,][1,]

次に、行があります。出力として GOAL のみが必要な場合:

data[data$value==valueFirst,][1,3]
于 2013-03-28T08:48:54.600 に答える