Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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_Dataframe_Reshape - Fatal编程技术网

如何在R中对数据帧进行矢量化?

如何在R中对数据帧进行矢量化?,r,dataframe,reshape,R,Dataframe,Reshape,我有这个数据框: aaa=read.table(text="variable value X3CO 24.88994 X3CO 25.02366 X3CO 24.90309 X3CS 25.70630 X3CS 25.26748 X3CS 25.19539 X3CD 26.95723 X3CD 26.84726 X3CD 26.23144 X3CSD 36.95251

我有这个数据框:

aaa=read.table(text="variable value   
  X3CO     24.88994
  X3CO     25.02366
  X3CO     24.90309
  X3CS     25.70630
  X3CS     25.26748
  X3CS     25.19539
  X3CD     26.95723
  X3CD     26.84726
  X3CD     26.23144
  X3CSD    36.95251
  X3CSD    36.04091
  X3CSD    36.90476
  X5CO     25.44123
  X5CO     24.97586
  X5CO     24.86076
  X5CS     25.71570
  X5CS     26.10244
  X5CS     25.39033
  X5CD     27.67509
  X5CD     27.18986
  X5CD     26.93682
  X5CSD    36.26529
  X5CSD    34.88553
  X5CSD    33.97910
  X7CO     24.71426
  X7CO     24.08444
  X7CO     23.97058
  X7CS     24.55734
  X7CS     24.56562
  X7CS     24.75898
  X7CD     27.14260
  X7CD     26.65704
  X7CD     26.49533
  X7CSD    33.89882
  X7CSD    32.91092
  X7CSD    32.79199
  X9CO     26.86141
  X9CO     26.42649
  X9CO     25.83506
  X9CS     28.17368
  X9CS     27.27401
  X9CS     26.58814
  X9CD     28.88915
  X9CD     28.32598
  X9CD     28.27136
  X9CSD    34.61352
  X9CSD    35.84190
  X9CSD    35.80329",header=TRUE)
您知道有没有一种方法可以使用“变量”级别将此数据帧矢量化为矢量

此过程相当于手动执行此操作:

c(c(24.88994,25.02366,24.90309), c(25.70630,25.26748,25.19539),...)) 
corresponding to 
c(c(X3CO,X3CO,X3CO),c(X3CS,X3CS,X3CS),...))

对于给定的数据帧:

aaa$value
因为它已经按
变量
分组(如果不一定排序)

对于尚未在组中的数据帧:

aaa[order(aaa$variable), "value"]

您可以使用
split()
函数创建数据帧列表,每个数据帧只包含一个级别,然后从该列表中提取向量:

aaa.sp <- split(aaa, aaa$variable)
aaa.sp[[1]]$variable
aaa.sp[[1]]$value

aaa.sp正常,但如何使用变量级别(每个向量3个值)
aggregate(值~变量,aaa,as.vector,simplify=FALSE)生成单个向量
?这将在“值”列中创建向量的
列表。或者,
加上(aaa,分割(值,变量))
也许?我不太明白你的问题。你能描述一下你的最终目标吗?