擅长:python、mysql、java
<p><code>R</code>中的另一种方法是在使用@Ananda Mahto的帖子中提到的<code>read.csv</code>读取数据集之后使用<code>dplyr/tidyr</code>(对于大数据集来说这会更快)</p>
<pre><code> library(dplyr)
library(tidyr)
mydf %>%
gather(Var, Val, matches("[0-9]+$")) %>%
separate(Var, c("Var", "Year")) %>%
spread(Var, Val)
# VariableA VariableB Year VariableC VariableD
#1 lm mt 1991 1 2
#2 lm mt 1992 3 3
#3 lm mt 1993 4 5
</code></pre>
<h3>数据</h3>
<pre><code> mydf <- structure(list(VariableA = structure(1L, .Label = "lm", class = "factor"),
VariableB = structure(1L, .Label = "mt", class = "factor"),
VariableC_1991 = 1L, VariableC_1992 = 3L, VariableC_1993 = 4L,
VariableD_1991 = 2L, VariableD_1992 = 3L, VariableD_1993 = 5L), .Names = c("VariableA",
"VariableB", "VariableC_1991", "VariableC_1992", "VariableC_1993",
"VariableD_1991", "VariableD_1992", "VariableD_1993"), class = "data.frame", row.names = c(NA,
-1L))
</code></pre>