r语言 - 转换(重塑)错误,找不到列变量,从长到宽



我以前使用过强制转换函数,没有遇到任何问题。我最近的数据集有问题。我得到这个:

Error: Can't subset columns that don't exist.
x Column `lambs` doesn't exist."

这是一个生成的变量,然后我试图使用它来对整个数据集进行广泛的转换,这样我就可以与另一个关于单个母羊编号的数据集合并。

这就是我写的:

birthwide<-cast(births, ewe~lambs)

如果我给你一个像这样的数据子集:

births<-data.frame(ewe = c(467993,50182754,50182754,50247299), 
lambs = c("Lamb1", "Lamb1","Lamb2", "Lamb1"),lid=c(213075, 212479, 231779,228837))

它是有效的,但我不明白为什么它没有读取我的变量。。。。我试过所有报价的变体,包括反勾和其他编造的数据,它很有效。我设置这个变量的方式有问题,它不是";看到";

我可以毫无问题地总结(出生$羔羊(和表格(出生$羊羔(。。。

数据结构:

structure(list(ewe = c(467993, 1239411, 2425980, 2426785, 
50182754, 50182754, 50247299, 99999999, 99999999, 317023062), 
lid = c(213075, 230520, 562412, 563106, 212479, 231779, 
563100, 213013, 229223, 229952), lambs = c("Lamb1", "Lamb1", 
"Lamb1", "Lamb1", "Lamb1", "Lamb2", "Lamb1", "Lamb1", "Lamb2", 
"Lamb1")), row.names = c(NA, -10L), class = c("tbl_df", "tbl", 
"data.frame"))

Stumped。

谢谢!CB-

这里,cast假设您希望lambs作为值列,因此它不再是可重写的变量;盖子";列:

reshape::cast(births, ewe ~ lambs, value = "lid")
ewe  Lamb1  Lamb2
1    467993 213075     NA
2   1239411 230520     NA
3   2425980 562412     NA
4   2426785 563106     NA
5  50182754 212479 231779
6  50247299 563100     NA
7  99999999 213013 229223
8 317023062 229952     NA

最新更新