Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将输入和输出表转换为矩阵?_R_Data.table - Fatal编程技术网

R 如何将输入和输出表转换为矩阵?

R 如何将输入和输出表转换为矩阵?,r,data.table,R,Data.table,我正在尝试将当前列在data.table中的输入和输出表(就像中学/高中代数教科书中介绍函数一样,请参见下面的示例)转换为矩阵,其中输入作为行和列标签,输出作为矩阵条目 > dt <- data.table(x = c("a","b","c"), y = c("T1", "T2", "T2"), z = c(10:12)) > dt x y z 1:

我正在尝试将当前列在data.table中的输入和输出表(就像中学/高中代数教科书中介绍函数一样,请参见下面的示例)转换为矩阵,其中输入作为行和列标签,输出作为矩阵条目

> dt <- data.table(x = c("a","b","c"), y = c("T1", "T2", "T2"), z = c(10:12))
> dt
   x  y  z
1: a T1 10
2: b T2 11
3: c T2 12
> dt2 <- data.table(x = c("a","b","c"), T1 = c(10,0,0), T2 = c(0,11,12))
> dt2
   x T1 T2
1: a 10  0
2: b  0 11
3: c  0 12

我一直在创建函数f(x,y),将
dt
dt2attempt
关联,从而生成
dt2
。有更好的方法吗?非常感谢您提供的任何建议或功能。

dt2
可以使用
dcast
生成:

> dcast(dt, x ~ y, value.var = 'z', fill = 0)
   x T1 T2
1: a 10  0
2: b  0 11
3: c  0 12
同样
tidyr::pivot\u更宽(dt,name\u from=y,values\u from=z,values\u fill=0)
> dcast(dt, x ~ y, value.var = 'z', fill = 0)
   x T1 T2
1: a 10  0
2: b  0 11
3: c  0 12