如何在 R 的 melt 中使用 measure.vars 中的字符串向量?
How to use vector of strings in measure.vars in melt in R?
我有一个 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.vars 用于不同的数据集(例如 data2,其中 headers 作为 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")
我有一个 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.vars 用于不同的数据集(例如 data2,其中 headers 作为 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")