배경 : 중복 값이있는 하나의 열이있는 데이터 프레임이 있습니다. 중복 열 값을 가진 모든 행을 선택하여 처리 한 다음 처리 된 모든 행을 사용하여 새 데이터 프레임을 추출하여이 데이터 프레임을 분할하려고합니다. (10 개) 레코드가에있을 때,고유 한 열 값에 대한 하위 집합 데이터 프레임의 동작
dataSet <- structure(list(DAY = structure(1:10, .Label = c("Tuesday",
"Tuesday", "Tuesday", "Tuesday", "Tuesday",
"Tuesday", "Tuesday", "Tuesday", "Tuesday",
"Tuesday", "Tuesday", "Tuesday", "Tuesday",
"Tuesday", "Tuesday", "Tuesday", "Tuesday",
"Tuesday", "Tuesday", "Tuesday", "Tuesday",
"Tuesday", "Tuesday", "Tuesday"), class = "factor"),
variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L), .Label = c("act1", "act2", "act3", "act4",
"act5", "act12", "act19", "act116", "act22",
"act6", "act13", "act111", "act117", "act23",
"act7", "act14", "act112", "act118", "act24",
"act8", "act15", "act113", "act119", "act25",
"act9", "act16", "act114", "act20", "act26",
"act10", "act17", "act115", "act21", "act27",
"act11", "act18"), class = "factor"), value = c(67,
65, 40, 79, 106, 90, 57, 59, 2, 12)), .Names = c("DAY",
"variable", "value"), row.names = c(NA, 10L), class = "data.frame")
uniq <- unique(dataSet$variable)
for (i in 1:length(uniq)){
rowsPerVal <- dataSet[dataSet$variable == uniq[i], ]
print(length(rowsPerVal))
}
난 그냥 최종 인쇄 문은 길이가 3 말합니다 이해가 안 돼요 :
는 다음 코드에서 잘못된 여기에 무슨 일이 일어나고 있는지에 관해서 놀랐다 variable
열과 동일한 값을 가진 데이터 프레임
데이터 프레임의 '길이'는 실제로 목록이므로 열의 수입니다. 너는 아마도 '비켜서'또는 어떤 것을 의미했을 것이다. – joran
음, 예제에서는 "uniq"에 하나의 값만 있습니다. 그것은 당신의 문제를 설명하기에 충분합니까? 오, 신경 쓰지 마세요, 조란 말이 맞아요. 대신에'print (nrow (...))'를 써라. 아니면 그냥'print (sum (dataSet $ variable == uniq [i]))'를 호출하고 위의 행을 건너 뜁니다. 루핑하지 않고도이를 수행 할 수있는 방법은 분명합니다. – Frank