如果我有一个数据框,例如
Inj Name Injection ID Time
116 1 B 6130 3.007
117 1 CBZ 6130 7.397
118 1 A 6130 7.486
119 1 C 6130 7.761
120 1 D 6130 10.175
121 1 F 6130 10.511
structure(list(Inj = c(1, 1, 1, 1, 1, 1), Name = c("B", "CBZ",
"A", "C", "D", "F"), `Injection ID` = c(6130, 6130, 6130, 6130,
6130, 6130), Time = c(3.007, 7.397, 7.486, 7.761, 10.175, 10.511
)), .Names = c("Inj", "Name", "Injection ID", "Time"), class = "data.frame", row.names = 116:121)
我会(由于我有许多不同的Inj
值,因此可以将此值变成单个行,例如
Inj Injection.ID Name.1 Name.2 Name.3 Name.4 Name.5 Name.6 Time.1 Time.2 Time.3 Time.4 Time.5 Time.6
1 1 6130 B CBZ A C D F 3.007 7.397 7.486 7.761 10.175 10.511
很遗憾,我真的不确定如何使用spread
...或其他任何方法来完成此操作。
答案 0 :(得分:2)
library(dplyr)
df %>% group_by(`Injection ID`) %>% mutate(row = row_number()) %>%
gather(key, value, -row, -Inj, -`Injection ID`) %>%
mutate(id= paste0(key,".",row)) %>%
select(-row, -key) %>% spread(id, value)
# A tibble: 1 x 14
# Groups: Injection ID [1]
Inj `Injection ID` Name.1 Name.2 Name.3 Name.4 Name.5 Name.6 Time.1 Time.2 Time.3 Time.4 Time.5 Time.6
<dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 1 6130 B CBZ A C D F 3.007 7.397 7.486 7.761 10.175 10.511
答案 1 :(得分:1)
使用 let ref = firebase.database().ref(userID);
ref.orderByKey().equalTo(key).on("child_added", function(snapshot) {
document.getElementById('chat_box').style.display = 'none';
console.log("This ad is posted by you - " + userID) ;
});
/ melt()
可以做类似的事情(使用来自dcast()
的管道(无论如何,magrittr
都会加载)):
dplyr