在R中提供了
t()
函数用来进行转置,很多时候确实提供了诸多便利,但是由于t()
函数在转置时会强制把data.frame
函数转换成matrix
格式,在后续的计算中又带来麻烦。由于在平时的计算中会经常用到转置,为了节省时间,把data.frame
格式转置的一系列操作打包成函数备份,方便以后使用。
使用的包和数据
由于在平时的计算中会经常用到data.table()
包,所以这里的dataframe转置函数默认已经载入此包。这里我们使用中国北京市的一组经济数据,具体如下。
|
|
处理思路
- 首先提取原数据集除去首列的所有列名。
- 转置原数据集,保存为
tempdata
,此时的格式为matrix
格式。 - 提取
tempdata
的第一行。 - 把
tempdata
去除第一行的数据转化为data.table
格式。 - 把提取到的
tempdata
第一行作为列名赋值给data.table
格式的tempdata
。 - 把提取到原数据集除去首列的所有列名和
tempdata
进行cbind
操作。
具体实现代码
|
|
通过上述代码对tdata进行转置操作。
|
|
大功告成,年份出现在最后一列。如果有强迫症,或者为了以后计算更加方便,还可以再加入一个参数,直接指定最后一列的列名,缺省值为"colnames"
。
|
|
然后就可以通过indexname
参数来指定列名。
|
|
通过以上函数,我们就可以快速转置数据框,进行数据操作了。
|
|