当前位置: 首页 > 编程笔记 >

R 语言重塑函数

郎增
2023-03-14
本文向大家介绍R 语言重塑函数,包括了R 语言重塑函数的使用技巧和注意事项,需要的朋友参考一下

示例

用于重塑数据的最灵活的基本R函数是reshape。

#创建不平衡纵向(面板)数据集
set.seed(1234)
df <- data.frame(identifier=rep(1:5, each=3),
                 location=rep(c("up", "down", "left", "up", "center"), each=3),
                 period=rep(1:3, 5), counts=sample(35, 15, replace=TRUE),
                 values=runif(15, 5, 10))[-c(4,8,11),]
df

   identifier location period counts   values
1           1       up      1      4 9.186478
2           1       up      2     22 6.431116
3           1       up      3     22 6.334104
5           2     down      2     31 6.161130
6           2     down      3     23 6.583062
7           3     left      1      1 6.513467
9           3     left      3     24 5.199980
10          4       up      1     18 6.093998
12          4       up      3     20 7.628488
13          5   center      1     10 9.573291
14          5   center      2     33 9.156725
15          5   center      3     11 5.228851

请注意,data.frames是不平衡的,也就是说,单元2在第一个周期中缺少观测值,而单元3和4在第二个周期中缺少观测值。另外,请注意,有两个变量随时间变化:计数和值,以及两个不变的变量:标识符和位置。

长到宽

要重塑data.frame宽幅格式,

#根据时间变量重塑宽度
df.wide <- reshape(df, idvar="identifier", timevar="period",
                   v.names=c("values", "counts"), direction="wide")
df.wide
   identifier location values.1 counts.1 values.2 counts.2 values.3 counts.3
1           1       up 9.186478        4 6.431116       22 6.334104       22
5           2     down       NA       NA 6.161130       31 6.583062       23
7           3     left 6.513467        1       NA       NA 5.199980       24
10          4       up 6.093998       18       NA       NA 7.628488       20
13          5   center 9.573291       10 9.156725       33 5.228851       11

请注意,缺少的时间段用NA填充。

在重新调整宽度时,“ v.names”参数指定随时间变化的列。如果位置变量不是必需的,则可以在使用“ drop”自变量重塑形状之前将其删除。在从data.frame中删除唯一的不变/非id列时,该v.names参数变得不必要。

reshape(df, idvar="identifier", timevar="period", direction="wide",
        drop="location")

宽到长

要使用当前的df.wide重塑,最小语法是

reshape(df.wide, direction="long")

但是,这通常比较棘手:

# remove "." separator indf.widenames for counts and values
names(df.wide)[grep("\\.", names(df.wide))] <-
              gsub("\\.", "", names(df.wide)[grep("\\.", names(df.wide))])

现在,简单的语法将产生有关未定义列的错误。

对于使reshape函数难以自动解析的列名,有时需要添加“ varying”参数,该参数指示reshape以宽格式分组特定变量以将其转换为长格式。此参数采用变量名称或索引的向量列表。

reshape(df.wide, idvar="identifier",
        varying=list(c(3,5,7), c(4,6,8)), direction="long")

长整型时,可以提供“ v.names”参数来重命名结果变量。

有时,可以通过使用“ sep”自变量避免使用“ varying”的规范,reshape该变量告诉变量名的哪一部分指定值自变量,哪个变量指定时间自变量。

 类似资料:
  • 主要内容:在数据框中连接列和行,合并数据帧,拆分数据和重构数据,拆分数据,重构数据R中的数据重整是关于将数据组织成行和列的方式。 R中的大多数时间数据处理是通过将输入数据作为数据帧来完成的。 很容易从数据帧的行和列中提取数据,但是有些情况下,我们需要的格式与收到的格式不同。 R具有许多函数,用于在数据帧中拆分,合并和更改行到列,反之亦然。 在数据框中连接列和行 我们可以使用函数连接多个向量来创建数据帧。也可以使用函数合并两个数据帧。 当我们执行上述代码时,会产生以下结果 - 合

  • 本文向大家介绍R重塑数据,包括了R重塑数据的使用技巧和注意事项,需要的朋友参考一下 示例 数据通常在表中。通常,可以将此表格数据分为宽和长格式。在广泛的格式中,每个变量都有自己的列。 人 身高[cm] 年龄[yr] 艾莉森 178 20 鲍勃 174 45 卡尔 182 31 但是,有时使用长格式会更方便,因为所有变量都在一列中,而值在第二列中。 人 变量 值 艾莉森 身高[cm] 178 鲍勃

  • 主要内容:函数定义,函数组件,内置函数,用户自定义函数,懒惰计算函数一个函数是组合在一起以执行特定任务的一组语句。R具有大量内置函数,当然用户也可以创建自己的功能。 在R中,函数是一个对象,所以R解释器能够将控制传递给函数,以将参数传递函数完成操作。 该函数又执行其任务并将控制权返回给解释器以及可存储在其他对象中的任何结果。 函数定义 使用关键字来创建一个R函数。R函数定义的基本语法如下: 函数组件 函数中有许多不同的部分,它们是 - 函数名称 - 这是函数的实际

  • 主要内容:检查可用的R包,获取所有安装的软件包列表,安装新软件包,加载包到库R包是R函数,编码和样本数据的集合。 它们存储在R环境中的名为“”的目录下。 默认情况下,R在安装过程中安装一组软件包。当需要某些特定的目的时,也可根据需要添加更多的包。 当我们启动R控制台时,默认情况下只有默认软件包可用。 已经安装的其他软件包必须明确加载才能被要使用的R程序使用。 R语言中提供的所有软件包均列在R软件包中。 以下是用于检查,验证和使用R包的命令列表。 检查可用的R包 获取包含R

  • 主要内容:例子,命名列和行,访问数组元素,操纵数组元素,跨数组元素的计算数组是可以在二维及以上存储数据的R数据对象。 例如 - 如果创建一个维数组,那么它将创建个矩形矩阵,每个矩阵具有行和列。数组只能存储数据类型。 数组可通过使用函数来创建。 它将向量作为输入,并使用参数中的值来创建数组。 例子 以下示例创建两个矩阵的数组,每个矩阵具有行和列。 当我们执行上述代码时,会产生以下结果 - 命名列和行 可以使用参数为数组中的行,列和矩阵命名。 当我们执行上述代码时,会产生

  • 多元(多重)回归是线性回归扩展到两个以上变量之间的关系。在简单的线性关系中,我们有一个预测因子和一个响应变量,但在多元回归中,可以有多个预测变量和一个响应变量。 多元回归的一般数学方程为 - 以下是使用的参数的描述 - y - 是响应变量。 a,b1,b2 … bn - 是系数。 x1,x2,… xn - 是预测变量。 我们使用R中的函数创建回归模型。该模型使用输入数据确定系数的值。 接下来,可以