楼主: R语言_小白
850 7

[问答] 表格中同一列的相邻数据依次作前一个和后一个的相除运算,代码如何写 [推广有奖]

  • 0关注
  • 0粉丝

大专生

30%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
13.5277
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
4490 点
帖子
12
精华
0
在线时间
86 小时
注册时间
2023-7-29
最后登录
2025-10-11

楼主
R语言_小白 发表于 2023-7-29 22:26:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,对表格中同一列的相邻数据依次作前一个和后一个的相除运算,应该用什么代码实现呢?比如一个名称为Drug的表格A列,有A1到A20共20行数据,如何批量计算前一行与后一行的相除结果,并且生成新的一列呢?
二维码

扫码加我 拉你入群

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

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

关键词:如何写 drug

回帖推荐

oliyiyi 发表于8楼  查看完整内容

drunkfish69 发表于6楼  查看完整内容

移除最后一个数据,保持A,B一样长

沙发
drunkfish69 发表于 2023-7-31 08:19:29
复制一列,数据往下移一行,第一行填充原数列的第一行,所以结果的第一行总是1。看看是否满足需求。
第6行应该是“B <- c(A$Drug[1],A$Drug)“,code里显示有问题
  1. library(tidyverse)

  2. A <- data_frame(sample(0:100, 20, replace = TRUE))
  3. colnames(A) <- 'Drug'

  4. B <- c(A$Drug[1],A$Drug)
  5. B <- B[-length(B)]

  6. A <- cbind(A, B) %>%
  7.   mutate(result = B/A)

  8. A
复制代码

藤椅
drunkfish69 发表于 2023-7-31 08:23:04
为什么‘$'在code里显示不了?
第6行应该是
B <- c(A$Drug[1], A$Drug)

板凳
drunkfish69 发表于 2023-7-31 09:14:03
论坛的dollar符号显示有问题啊!

SCR-20230731-hvzl.png (20.91 KB)

SCR-20230731-hvzl.png

报纸
R语言_小白 发表于 2023-7-31 10:30:09
drunkfish69 发表于 2023-7-31 09:14
论坛的dollar符号显示有问题啊!
请教一下大神,B[-length(B)]的语言逻辑怎么理解啊

地板
drunkfish69 发表于 2023-7-31 10:32:01
移除最后一个数据,保持A,B一样长

7
R语言_小白 发表于 2023-7-31 12:31:39
drunkfish69 发表于 2023-7-31 10:32
移除最后一个数据,保持A,B一样长
明白了,谢谢

8
oliyiyi 发表于 2023-8-23 09:53:34
  1. # 安装包
  2. install.packages('dplyr')
  3. library(dplyr)

  4. # 创建比例列
  5. df <- df %>%
  6.   mutate(
  7.     A_ratio = A / lag(A) # 当前行除以前一行
  8.   )

  9. # 也可以反过来计算
  10. df <- df %>%
  11.   mutate(
  12.     A_ratio = lag(A) / A # 前一行除以当前行
  13.   )
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 21:58