楼主: tianyidai
1030 6

[问答] R语言代码问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

14%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
84 点
帖子
11
精华
0
在线时间
142 小时
注册时间
2013-10-31
最后登录
2020-6-15

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
     参数     时间点     值
1     a        10:00       5
2     b        10:05       10
3     a        10:10       7
4     a        10:15        1
5     b        10:20        9
6     c        10:25        3
7     c        10:30        9
8     b        10:35        20
9     a        10:40        2
10   b        10:50        43

上述csv文件用R转化为如下csv文件
        时间点      a          b           c
1      10:00        5         NA         NA
2      10:05       NA        10         NA
3      10:10        7         NA         NA
4      10:15        1         NA         NA
5      10:20       NA         9          NA
6      10:25       NA        NA         3
7      10:30       NA        NA         9
8      10:35       NA         20         NA
9      10:40        2          NA        NA
10    10:50       NA         43         NA

我一直没有头绪,麻烦各位了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言

沙发
Charlenefan3 发表于 2019-12-12 14:50:46 |只看作者 |坛友微信交流群
感觉可以尝试一下tidyverse里面的group_by(时间点)

使用道具

藤椅
tianyidai 发表于 2019-12-12 15:27:29 |只看作者 |坛友微信交流群
Charlenefan3 发表于 2019-12-12 14:50
感觉可以尝试一下tidyverse里面的group_by(时间点)
不知道ddply能不能用在这,听别人说可以,但是我之前从来没用过这个函数

使用道具

板凳
megapanda 发表于 2019-12-12 18:09:16 |只看作者 |坛友微信交流群
唔,尝试了一种直接的想法,代码如下:
  1. # 设Data表示原始的data frame
  2. paras = as.character(unique(Data$参数))
  3. output = data.frame(时间点 = Data$时间点)
  4. output[paras] = NA
  5. for(k in paras){
  6.   output[[k]][Data\$参数 == k] = Data\$值[Data\$参数 == k]  # 输代码时把这行的斜杠\删掉
  7. }
  8. print(output)
复制代码

使用道具

报纸
owenqi 在职认证  学生认证  发表于 2019-12-13 01:34:53 |只看作者 |坛友微信交流群
这个算是一个比较典型的长宽数据转换吧,楼主可以试试这个。
我把你的中文变量换了一下名字,参数 = group, 值 = val
  1. library(tidyr)
  2. wide <- test %>% pivot_wider(names_from = group, values_from = val)
复制代码

使用道具

地板
tianyidai 发表于 2019-12-13 12:57:24 |只看作者 |坛友微信交流群
megapanda 发表于 2019-12-12 18:09
唔,尝试了一种直接的想法,代码如下:
非常感谢,代码可以运行

使用道具

7
tianyidai 发表于 2019-12-13 13:41:13 |只看作者 |坛友微信交流群
owenqi 发表于 2019-12-13 01:34
这个算是一个比较典型的长宽数据转换吧,楼主可以试试这个。
我把你的中文变量换了一下名字,参数 = group ...
我用了楼上那位的代码成功了,你这个我再试试看

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 06:45