-
Notifications
You must be signed in to change notification settings - Fork 0
/
현우님코드
94 lines (67 loc) · 2.28 KB
/
현우님코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
split_func = function(df){
print("처음 5행입니다.")
print(df[1:5,])
print("column들입니다")
print(colnames(df))
conditions = c()
targets = c()
while (TRUE){
input = readline("분리할 column을 순서대로 입력해주세요(더 없다면 Enter) : ")
if (input == ""){
print("분리할 column들은 다음과 같습니다.")
print(conditions)
break
}
# %in% method : checks whether a vector contains the given element
else if (!(input %in% colnames(df))){
message(sprintf("%s라는 column은 없습니다", input))
}
else if (input %in% conditions){
message(sprintf("%s는 이미 선택하셨습니다", input))
}
else {
conditions = c(conditions, input)
print(conditions)
}
}
while (TRUE){
input = readline("표시할 column을 순서대로 입력해주세요(더 없다면 Enter) : ")
if (input == ""){
print("표시할 column들은 다음과 같습니다.")
print(targets)
break
}
else if (!(input %in% colnames(df))){
message(sprintf("%s라는 column은 없습니다", input))
}
else if (input %in% conditions){
message(sprintf("%s는 분리할 column입니다", input))
}
else if (input %in% targets){
message(sprintf("%s는 이미 선택하셨습니다", input))
}
else {
targets = c(targets, input)
print(targets)
}
}
df_target = subset(df, select = targets)
print(df_target[1:5,])
#nrow() : 행 개수, length() : 열 개수
for (row_num in 1:nrow(df)){
df_condition = df[row_num, conditions] # row_num번째 condition들만 열로 있는 row
value_vector = as.vector(t(df_condition)) # 한 행 짜리 df를 vector로 바꿈
one_line = paste(value_vector, collapse = "_")
name <- paste0("patient_count", one_line)
tmp <- name
if (tmp %in% names(as.list(.GlobalEnv))){
name <<- rbind(name, df_target[row_num,])
#name <<- rbind(paste0(name,"_duplicate"), df_target[row_num,])
# assign(paste0(name,"_duplicate"), name)
}
else{
assign(name, df_target[row_num,], envir = .GlobalEnv)
# assign(paste0(name,"_duplicate"), name)
}
}
}