楼主: spacechaos
3226 7

[问答] 取两列数据在第三列形成新的向量 [推广有奖]

  • 0关注
  • 0粉丝

高中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
84 点
帖子
12
精华
0
在线时间
40 小时
注册时间
2018-3-1
最后登录
2018-12-5

楼主
spacechaos 发表于 2018-3-1 16:33:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
QQ图片20180301162724.png
如图,
第一,想要将>P0A564.2填充到下面1,2,3,4中,同理>P15712.1也自动向下填充,在R中如何实现?
第二,想要形成新的一列在X3右侧,每行数据为以X2为开始,X3为结束的向量,如第二行为5,6,7,8;第三行为30;依次类推。新手想了许久没有太好的办法,希望各位帮帮忙,谢谢~

二维码

扫码加我 拉你入群

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

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

关键词:如何实现

沙发
cheetahfly 在职认证  发表于 2018-3-2 08:45:26
  1. library(tidyverse)
  2. mydata %>%
  3.   mutate(x1 = ifelse(is.na(possibly(as.numeric, NA)(x1)), x1, NA)) %>%
  4.   fill(x1) %>%
  5.   na.omit() %>%
  6.   mutate(num = row_number()) %>%
  7.   group_by(num) %>%
  8.   mutate(x4 = map2(x2, x3, seq, by = 1L)) %>%
  9.   ungroup() %>%
  10.   select(-num)
复制代码

如果你是新手,上面的代码不一定能够立刻理解,没关系,仔细查查每个函数的帮助文件,你就会懂得思路了。

藤椅
spacechaos 发表于 2018-3-2 17:47:09
cheetahfly 发表于 2018-3-2 08:45
如果你是新手,上面的代码不一定能够立刻理解,没关系,仔细查查每个函数的帮助文件,你就会懂得思路了。
非常感谢你的帮助,真的感谢!我现在在做对我来说有点难度,可能还要向你多请教请教~

板凳
spacechaos 发表于 2018-3-5 15:30:48
cheetahfly 发表于 2018-3-2 08:45
如果你是新手,上面的代码不一定能够立刻理解,没关系,仔细查查每个函数的帮助文件,你就会懂得思路了。
QQ图片20180305150609.png
图一为表位预测结果
QQ图片20180305150540.png
图二为表位真实结果

如何对图一图二进行对比,实现在表二后新增一列准确度,用表一的数据(比如P0A564.2的每一行数据共4行)和表二的数据(同样为P0A564.2的第一行数据)进行对比,用intersect函数求他们的交集,然后除以表二第一行的向量个数(1-16共16个),取他们中的最大值作为新增列准确度的数据,依次类推下面每一行的结果。
举个例子,表一P0A564.2中第一行,向量为5,6,7,8,和表二第一行1-16比对,准确度为4/16=25%;
                  表一P0A564.2中第二,三,四行,向量分别为为(30),(34),(48-60),和表二第一行1-16对比,准确度均为0;所以在表二新增列准确度中,第一行数据就为25%,依次类推第二第三第四行的值。
在进行完P0A564.2的结果之后,就是下一个X1(P15712.1)的数据比对,和上面类似。
像这样的又该如何实现呢?谢谢了~~

报纸
cheetahfly 在职认证  发表于 2018-3-5 17:33:15
你还是写个for循环,用intersect()函数逐行求解吧,因为这样的数据操作实在不是data.frame格式的强项,容易出现不易察觉的错误。

地板
spacechaos 发表于 2018-3-14 15:11:41
cheetahfly 发表于 2018-3-5 17:33
你还是写个for循环,用intersect()函数逐行求解吧,因为这样的数据操作实在不是data.frame格式的强项,容易 ...
我用intersect(data_bacteria_Homosapiens_bepipred2_pos[1,4],dbH[1,4])进行比对,结果显示list()是怎么回事?求告知,谢谢~~

7
spacechaos 发表于 2018-3-14 15:30:49
spacechaos 发表于 2018-3-14 15:11
我用intersect(data_bacteria_Homosapiens_bepipred2_pos[1,4],dbH[1,4])进行比对,结果显示list()是怎 ...
我自己搞定了~~

8
cheetahfly 在职认证  发表于 2018-3-14 23:54:41
spacechaos 发表于 2018-3-14 15:30
我自己搞定了~~
加油。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 03:54