PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
R_Language
[问题] 用dplyr做任两column相乘
楼主:
rebe212296
(绿豆冰)
2020-10-13 09:43:59
如题
[问题类型]:
dplyr套件
[软件熟悉度]:
一年
[问题叙述]:
我的问题在于如何任选2个字段做运算,以一行程式表示
目前data这个资料集有24栏,我在想是否有方法可以不要打23+22+…+1=276行程式
col1~col24
任2栏相乘
[程式范例]:
data %>%group_by(col1,col2)%>%mutate(product=col1*col2)
[环境叙述]:
R 3.6.0
[关键字]:
选择性,也许未来有用
作者:
locka
(locka)
2020-10-13 11:32:00
不需要group_by()啊,直接 mutate()就好
楼主:
rebe212296
(绿豆冰)
2020-10-13 11:55:00
我是想问,如果有24栏中任选2栏,难道要一对一对打出来吗
作者:
locka
(locka)
2020-10-13 12:05:00
你的意思是想把所有的排列组合都mutate出来吗 (c1*c2, c1*c3…c1*24… and so on?)
楼主:
rebe212296
(绿豆冰)
2020-10-13 12:09:00
就是col1*col2存product12,col2*col3存product23,总共存C_2^24种组合对共有23+22+...+1种
作者:
hank830214
(hank)
2020-10-13 12:23:00
我目前想到可以用combn()求出所有组合再搭配eval()+parse()把文字当作程式码执行
http://tinyurl.com/y5sks49a
作者: clickhere (It's time to go home.)
2020-10-13 12:50:00
x<-t(data)%*%data;x[lower.tri(x)]
作者:
andrew43
(讨厌有好心推文后删文者)
2020-10-13 12:50:00
一样也是先想到combn()
https://ideone.com/lHdXPe
作者:
locka
(locka)
2020-10-13 13:51:00
expand.grid的方法供参
https://i.imgur.com/oreH24D.jpg
但楼上a大的方法比较好~ 学习了!!而且用expand.grid不能删除重复还要再想办法把结果转回column 啊啊啊好麻烦好麻烦(吐槽自己是哪招XD)
楼主:
rebe212296
(绿豆冰)
2020-10-13 16:20:00
谢谢各位
作者:
andrew43
(讨厌有好心推文后删文者)
2020-10-13 17:43:00
我的res并不是list而是matrix, 可再用as.data.frame。
继续阅读
[问题] 如何用bat档让rmarkdown输出word?
mrecct
[问题] 人口统计应该如何做?
jojo321
Re: [问题] 快速产生混淆矩阵
rebe212296
[问题] 快速产生混淆矩阵
totolink
[问题] for循环_矩阵相加
lin810221
[问题] Data frame 筛选
winter7531
[问题] R 向量 判断
lin810221
[问题] Rstudio 打不开
rebe212296
[问题] R 语言输出问题
lin810221
[问题] 我该如何把行与列的值对应呢? (求救)
askpeople
Links
booklink
Contact Us: admin [ a t ] ucptt.com