【发布时间】:2021-12-07 06:00:30
【问题描述】:
我一直在尝试向我的数据框中添加一个新列,这是由于每个“子数据框”(每个“id_n”)的行对减去一列的值。
dput(df[1:30,c(2,5,6,9,14,15)])
结构(列表(gen_spe = c(“holo_ads”,“holo_ads”,“holo_ads”, “holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、 “holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、 “holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、 “holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、“holo_ads”、 "holo_ads", "holo_ads", "holo_ads"), ori = c("guad", "guad", “瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、 “瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、 “瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、“瓜德”、 “瓜德”,“瓜德”,“瓜德”,“瓜德”),spe = c(“广告”,“广告”,“广告”, “广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告”、 “广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告”、 “广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告”、“广告” ),id_n = c(“1_1”,“1_1”,“1_1”,“1_1”,“1_10”,“1_10”,“1_10”, “1_10”、“1_11”、“1_11”、“1_11”、“1_11”、“1_12”、“1_12”、“1_12”、 “1_12”、“1_13”、“1_13”、“1_13”、“1_13”、“1_14”、“1_14”、“1_14”、 “1_15”、“1_15”、“1_15”、“1_16”、“1_16”、“1_16”、“1_16”),npu = c(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 1, 2, 3, 4),duper = c(0.00997, 0.01002, 0.01213, 不适用, 0.01049, 0.01024, 0.01292, 不适用, 0.01054, 0.01009, 0.01424, 不适用, 0.01088, 0.01027, 0.01444, 不适用, 0.0102, 0.00995, 0.01165, 不适用, 0.01079, 0.01047, 不适用, 0.01061, 0.01129, 不适用, 0.01038, 0.0102, 0.01317, NA)), row.names = c(NA, 30L), class= "data.frame")
所以,我们有类似的东西:
id_n <- c("1_1","1_1","1_1","1_1","2_1","2_2","2_3","2_4","3_1","3_2")
duper <- c("0.00997","0.01002","0.01213", "NA", "0.01024", "0.01024", "0.01258", "NA", "0.01045", "0.01020")
npu <- c("1", "2", "3", "4", "1", "2", "3", "4", "1", "2")
x <- data.frame(id_n, duper, npu)
我希望 R 给我一个新列,对应于每个 id_n 列 'duper' 2 减去 2 的值。
例如,对于 id_n = 1_1 :0.01002-0.00997; 0.01213-0.01002.
对于 id_n = 1_2 :0.01024-0.01024; 0.01258-0.01024.
对于 id_n = 1_3 :0.01061-0.01047
以此类推。
我可以制作一个“子数据帧”列表,然后我想在上面应用一个函数,但我不知道如何让 R 来计算这个。 'npu' 列可用作每个 id_n 的值从 1 到 ...。
你有什么想法吗?
非常感谢,
海洋。
【问题讨论】:
-
请不要发布数据或代码的照片!如果您这样做,愿意帮助您的人将不得不输入所有这些文本。而是提供minimal reproducible example这里是a good overview on how to ask a good question
-
请提供 dput(head(name of your dataset)) 以帮助您
-
对不起,我添加了一些信息和简单的代码来解释我尝试做的事情。我希望这很好!