R在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
尝试说明图片 发布于:2024-04-10 13:37 --- 比较公式和循环计算平均值的流逝时间 发布于:2024-03-10 19:24 农业R语言统计 发布于:2023-12-14 14:02 朱兴垚-202105002605 发布于:2023-12-03 23:45 R demo 发布于:2023-10-06 16:14 小姑父的箱线图 发布于:2023-07-28 17:33 第一章第二章 发布于:2023-06-12 11:01 R入门预备知识 发布于:2023-06-09 15:04 创建一个数轴 发布于:2023-06-07 15:48 生成随机数 发布于:2023-05-10 17:10 读取gct文件 发布于:2023-05-06 11:08 excel画图 发布于:2023-02-09 18:17 储存经纬度的数组 发布于:2023-01-28 16:20 计算,logp函数,修改 发布于:2022-11-15 16:41 用 Monte Carlo 方法进行 概率和分位计算 发布于:2022-11-01 09:49 haoyong hho 发布于:2022-10-25 20:36 数理统计大作业代码 发布于:2022-10-24 16:44 画图——df=12的t分布 发布于:2022-10-23 19:18 统计作图题 发布于:2022-10-24 18:39 统计分析题 发布于:2022-10-23 16:39 ISYE 6501 HW8 (11.1) 发布于:2022-10-17 10:48 城市广告市场案例 发布于:2022-10-07 15:32 画sin()函数图像 发布于:2022-08-24 17:10 我的测试代码 发布于:2022-08-10 10:23 离散卷积逆 发布于:2022-06-20 17:03 定积分直接求和 发布于:2022-06-20 03:29 Buffon's needle problem 发布于:2022-06-03 12:48 试运行输出 发布于:2022-05-06 08:54 计算向量中的两两差值 发布于:2022-05-02 16:52 30日晚上10:00 发布于:2022-05-01 10:38 毕业论文代码 发布于:2022-03-06 23:18 中级计量模拟实验1 发布于:2021-11-18 14:15 第一个demo,不知道啥环境。 发布于:2021-11-09 09:18 R语言项目实验 发布于:2021-09-27 17:02 矩阵中的公式 发布于:2021-04-22 10:55 方块地图骰子判定 发布于:2021-01-10 17:24 R语言Hello World 发布于:2020-08-23 14:07 R语言Hello World 发布于:2020-08-23 14:07 R语言Hello World 发布于:2020-08-04 10:53 [更多]
显示目录

数据重塑



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

R语言 数据重塑

R语言中的数据重塑是关于改变数据被组织成行和列的方式。 大多数时间R语言中的数据处理是通过将输入数据作为数据帧来完成的。 很容易从数据帧的行和列中提取数据,但是在某些情况下,我们需要的数据帧格式与我们接收数据帧的格式不同。 R语言具有许多功能,在数据帧中拆分,合并和将行更改为列,反之亦然。

于数据帧中加入列和行


我们可以使用cbind()函数连接多个向量来创建数据帧。 此外,我们可以使用rbind()函数合并两个数据帧。

# Create vector objects.
city <- c("Tampa","Seattle","Hartford","Denver")
state <- c("FL","WA","CT","CO")
zipcode <- c(33602,98104,06161,80294)

# Combine above three vectors into one data frame.
addresses <- cbind(city,state,zipcode)

# Print a header.
cat("# # # # The First data frame
") 

# Print the data frame.
print(addresses)

# Create another data frame with similar columns
new.address <- data.frame(
   city = c("Lowry","Charlotte"),
   state = c("CO","FL"),
   zipcode = c("80230","33949"),
   stringsAsFactors = FALSE
)

# Print a header.
cat("# # # The Second data frame
") 

# Print the data frame.
print(new.address)

# Combine rows form both the data frames.
all.addresses <- rbind(addresses,new.address)

# Print a header.
cat("# # # The combined data frame
") 

# Print the result.
print(all.addresses)

当我们执行上面的代码,它产生以下结果 -

# # # # The First data frame
     city       state zipcode
[1,] "Tampa"    "FL"  "33602"
[2,] "Seattle"  "WA"  "98104"
[3,] "Hartford" "CT"   "6161" 
[4,] "Denver"   "CO"  "80294"

# # # The Second data frame
       city       state   zipcode
1      Lowry      CO      80230
2      Charlotte  FL      33949

# # # The combined data frame
       city      state zipcode
1      Tampa     FL    33602
2      Seattle   WA    98104
3      Hartford  CT     6161
4      Denver    CO    80294
5      Lowry     CO    80230
6     Charlotte  FL    33949

合并数据帧


我们可以使用merge()函数合并两个数据帧。 数据帧必须具有相同的列名称,在其上进行合并。

在下面的例子中,我们考虑图书馆名称“MASS”中有关Pima Indian Women的糖尿病的数据集。 我们基于血压(“bp”)和体重指数(“bmi”)的值合并两个数据集。 在选择这两列用于合并时,其中这两个变量的值在两个数据集中匹配的记录被组合在一起以形成单个数据帧。

library(MASS)
merged.Pima <- merge(x = Pima.te, y = Pima.tr,
   by.x = c("bp", "bmi"),
   by.y = c("bp", "bmi")
)
print(merged.Pima)
nrow(merged.Pima)

当我们执行上面的代码,它产生以下结果 -

 bp  bmi npreg.x glu.x skin.x ped.x age.x type.x npreg.y glu.y skin.y ped.y
1  60 33.8       1   117     23 0.466    27     No       2   125     20 0.088
2  64 29.7       2    75     24 0.370    33     No       2   100     23 0.368
3  64 31.2       5   189     33 0.583    29    Yes       3   158     13 0.295
4  64 33.2       4   117     27 0.230    24     No       1    96     27 0.289
5  66 38.1       3   115     39 0.150    28     No       1   114     36 0.289
6  68 38.5       2   100     25 0.324    26     No       7   129     49 0.439
7  70 27.4       1   116     28 0.204    21     No       0   124     20 0.254
8  70 33.1       4    91     32 0.446    22     No       9   123     44 0.374
9  70 35.4       9   124     33 0.282    34     No       6   134     23 0.542
10 72 25.6       1   157     21 0.123    24     No       4    99     17 0.294
11 72 37.7       5    95     33 0.370    27     No       6   103     32 0.324
12 74 25.9       9   134     33 0.460    81     No       8   126     38 0.162
13 74 25.9       1    95     21 0.673    36     No       8   126     38 0.162
14 78 27.6       5    88     30 0.258    37     No       6   125     31 0.565
15 78 27.6      10   122     31 0.512    45     No       6   125     31 0.565
16 78 39.4       2   112     50 0.175    24     No       4   112     40 0.236
17 88 34.5       1   117     24 0.403    40    Yes       4   127     11 0.598
   age.y type.y
1     31     No
2     21     No
3     24     No
4     21     No
5     21     No
6     43    Yes
7     36    Yes
8     40     No
9     29    Yes
10    28     No
11    55     No
12    39     No
13    39     No
14    49    Yes
15    49    Yes
16    38     No
17    28     No
[1] 17

melt()拆分数据和cast()数据重构


R语言编程的一个最有趣的方面是关于在多个步骤中改变数据的形状以获得期望的形状。 用于执行此操作的函数称为melt()和cast()。

我们考虑称为船舶的数据集称为“MASS”。

library(MASS)
print(ships)

当我们执行上面的代码,它产生以下结果 -

 type year   period   service   incidents
1     A   60     60        127         0
2     A   60     75         63         0
3     A   65     60       1095         3
4     A   65     75       1095         4
5     A   70     60       1512         6
.............
.............
8     A   75     75       2244         11
9     B   60     60      44882         39
10    B   60     75      17176         29
11    B   65     60      28609         58
............
............
17    C   60     60      1179          1
18    C   60     75       552          1
19    C   65     60       781          0
............
............

melt()拆分数据


现在我们拆分数据进行重组,将除类型和年份以外的所有列转换为多行展示。

molten.ships <- melt(ships, id = c("type","year"))
print(molten.ships)

当我们执行上面的代码,它产生以下结果 -

 type year  variable  value
1      A   60    period      60
2      A   60    period      75
3      A   65    period      60
4      A   65    period      75
............
............
9      B   60    period      60
10     B   60    period      75
11     B   65    period      60
12     B   65    period      75
13     B   70    period      60
...........
...........
41     A   60    service    127
42     A   60    service     63
43     A   65    service   1095
...........
...........
70     D   70    service   1208
71     D   75    service      0
72     D   75    service   2051
73     E   60    service     45
74     E   60    service      0
75     E   65    service    789
...........
...........
101    C   70    incidents    6
102    C   70    incidents    2
103    C   75    incidents    0
104    C   75    incidents    1
105    D   60    incidents    0
106    D   60    incidents    0
...........
...........

cast()重构数据


我们可以将被拆分的数据转换为一种新形式,使用cast()函数创建每年每种类型的船的总和。

recasted.ship <- cast(molten.ships, type+year~variable,sum)
print(recasted.ship)

当我们执行上面的代码,它产生以下结果 -

 type year  period  service  incidents
1     A   60    135       190      0
2     A   65    135      2190      7
3     A   70    135      4865     24
4     A   75    135      2244     11
5     B   60    135     62058     68
6     B   65    135     48979    111
7     B   70    135     20163     56
8     B   75    135      7117     18
9     C   60    135      1731      2
10    C   65    135      1457      1
11    C   70    135      2731      8
12    C   75    135       274      1
13    D   60    135       356      0
14    D   65    135       480      0
15    D   70    135      1557     13
16    D   75    135      2051      4
17    E   60    135        45      0
18    E   65    135      1226     14
19    E   70    135      3318     17
20    E   75    135       542      1

由JSRUN为你提供的R在线运行、在线编译工具
        JSRUN提供的R 在线运行,R 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout