我有一个data.csv文件,如下所示:
BBBB, B, OOB
CCCC, C, OOC
DDDD, D, OOD
EEEE, E, OOE
我获得了第二列为:
df1 <- read.csv(data, header=FALSE,strip.white=TRUE,stringsAsFactors=FALSE)[2].
问题是,我如何在melt函数中使用df1作为c("B"、"c"、"D"、"E(",将df1用作不同数据集的measure.var(例如,data2的标头为B、c、D、E(。
B,C,D,E
9.43,9.49,9.61,9.04
7.01,3.43,3.63,3.55
10.35,9.05,9.49,8.45
4.83,1.89,1.79,1.94
10.3,10.39,9.67,8.95
我想用作:
df2 = data.frame(melt(data2, measure.vars=df1, variable.name=xxxx, value.name="yyyy"), m="zzzz")
如果我们使用没有任何,
的[
,那么它仍然是一个有单列的data.frame
(假设原始数据集是data.frame
。更好的选择是[[
作为向量提取,measure
参数需要vector
。最好用unique
包装(如果有重复(
v1 <- unique(read.csv('file.csv', header=FALSE,strip.white=TRUE,stringsAsFactors=FALSE)[[2]])
现在,我们在measure
中使用它
library(reshape2)
df2 <- data.frame(melt(data2, measure.vars=v1, variable.name='xxxx',
value.name="yyyy"), m="zzzz")