擅长:python、mysql、java
<p>在R中,一种方法可能是跳过第一行读取csv,将其作为变量名的一部分重新添加,然后使用<code>reshape</code>获得所需的输出。你知道吗</p>
<p>尝试以下操作:</p>
<pre><code>mydf <- read.csv("yourfile.csv", skip = 1, check.names = FALSE)
names(mydf)[-c(1, 2)] <- paste(names(mydf)[-c(1, 2)],
c(1991, 1992, 1993), sep = "_")
reshape(mydf, direction = "long", idvar = 1:2,
varying = 3:ncol(mydf), sep = "_")
# VariableA VariableB time VariableC VariableD
# lm.mt.1991 lm mt 1991 1 2
# lm.mt.1992 lm mt 1992 3 3
# lm.mt.1993 lm mt 1993 4 5
</code></pre>
<hr/>
<p>在重命名步骤之后,如果<code>reshape()</code>对您来说太慢,请从我的“splitstackshape”包中尝试<code>merged.stack</code>:</p>
<pre><code>library(splitstackshape)
merged.stack(mydf, var.stubs = c("VariableC", "VariableD"), sep = "_")
# VariableA VariableB .time_1 VariableC VariableD
# 1: lm mt 1991 1 2
# 2: lm mt 1992 3 3
# 3: lm mt 1993 4 5
</code></pre>