R에서 미리 지정한 횟수만큼 행을 반복하는 것에 대한 여러 가지 질문이 있지만 특정 질문을 처리 할 수는 없습니다. 묻고있어.데이터 프레임의 다른 값을 기준으로 데이터 프레임의 행 블록을 반복하십시오.
각 응답자가 5 ~ 10 개 질문에 답변하는 설문의 응답 데이터 프레임이 있습니다. 장난감 예를 들어 :
df <- data.frame(ID = rep(1:2, each = 5),
Response = sample(LETTERS[1:4], 10, replace = TRUE),
Weight = rep(c(2,3), each = 5))
> df
ID Response Weight
1 1 D 2
2 1 C 2
3 1 D 2
4 1 D 2
5 1 B 2
6 2 D 3
7 2 C 3
8 2 B 3
9 2 D 3
10 2 B 3
나는 블록으로 블록 다음 응답자 2의 응답으로, 두 번 세 번, 을 을 응답자 1의 답변을 반복하고 싶은, 나는 응답의 각 블록을 원하는 고유 한 ID가 있어야합니다. 즉,이처럼 보이게 최종 결과를 원하는 :
ID Response Weight
1 11 D 2
2 11 C 2
3 11 D 2
4 11 D 2
5 11 B 2
6 12 D 2
7 12 C 2
8 12 D 2
9 12 D 2
10 12 B 2
11 21 D 3
12 21 C 3
13 21 B 3
14 21 D 3
15 21 B 3
16 22 D 3
17 22 C 3
18 22 B 3
19 22 D 3
20 22 B 3
21 23 D 3
22 23 C 3
23 23 B 3
24 23 D 3
25 23 B 3
내가 뭘하는 방법을이 내 데이터 집합> 3000 명 응답자가 주어진, 정말 현재 어설픈이며, 참을 수있다 느린. 이 작업을 수행하는 빠른 방법은
df.expanded <- NULL
for(i in unique(df$ID)) {
x <- df[df$ID == i,]
y <- x[rep(seq_len(nrow(x)), x$Weight),1:3]
y$order <- rep(1:max(x$Weight), nrow(x))
y <- y[with(y, order(order)),]
y$IDNew <- rep(max(y$ID)*100 + 1:max(x$Weight), each = nrow(x))
df.expanded <- rbind(df.expanded, y)
}
있습니까 :
여기 내 코드입니까?
왜 그런 작업을 수행하겠습니까? – DJJ
예. 저는 응답의 잠복 (latent-class) 조건부 로짓 분석을하고 있습니다 (실제 데이터 집합에서 위의 문자가 아닌 1/0입니다). 실제로 분석을하고있는 Stata에서 lclogit은 가중치를 받아들이지 않으므로 역 확률 가중치를 사용합니다. – TheChainsOfMarkov
'ID 1 '을 두 번 반복하십시오 :'df [df $ ID == 1] [rep (seq_len (nf) (df $ ID == 1)]), –