Syl*_*uez 5 casting r reshape dataframe melt
我有data.frame df1(见下面的代码)。我想把它转换成什么df2样子(见下面的代码)。
也许这可以用reshape cast或来完成reverse melt?但我不明白这些功能。请问有人可以帮忙吗?
df1 <- data.frame(
stringsAsFactors = FALSE,
sample = c("a","a","a",
"a","b","c","c","c","c","c","c","c","c",
"d","d","e","e","e","g","g"),
LETTER = c("P","R","V",
"Y","Q","Q","R","S","T","U","W","X","Z",
"Q","X","Q","V","X","Q","T")
)
df2 <- data.frame(
stringsAsFactors = FALSE,
sample = c("a", "b", "c", "d", "e", "f", "g"),
P = c(1L, 0L, 0L, 0L, 0L, 0L, 0L),
Q = c(0L, 1L, 1L, 1L, 1L, 0L, 1L),
R = c(1L, 0L, 1L, 0L, 0L, 0L, 0L),
S = c(0L, 0L, 1L, 0L, 0L, 0L, 0L),
T = c(0L, 0L, 1L, 0L, 0L, 0L, 1L),
U = c(0L, 0L, 1L, 0L, 0L, 0L, 0L),
V = c(1L, 0L, 0L, 0L, 1L, 0L, 0L),
W = c(0L, 0L, 1L, 0L, 0L, 0L, 0L),
X = c(0L, 0L, 1L, 1L, 1L, 0L, 0L),
Y = c(1L, 0L, 0L, 0L, 0L, 0L, 0L),
Z = c(0L, 0L, 1L, 0L, 0L, 0L, 0L)
)
Run Code Online (Sandbox Code Playgroud)
编辑
有人建议我看看这篇文章: How to reshape data from long to wide format。不幸的是,这并不能回答我的问题。等效代码如下所示,并引发以下错误。
df2 <- reshape(df, idvar = "sample", timevar = "LETTER", direction = "wide")
Error in data[, timevar] : object of type 'closure' is not subsettable
Run Code Online (Sandbox Code Playgroud)
首先添加第三个变量 usingdf1$value <- 1L也不能解决它。
请注意,与上述帖子不同,在我的数据中,数据的长度和宽度之间没有完全匹配。任何帮助仍然不胜感激,请。
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |