当前位置: 首页 > 知识库问答 >
问题:

在数据帧的不同倍数之间随机交换数据帧值

文华美
2023-03-14

这是一个有点复杂的解释,所以我希望它足够清楚,但如果不是,我会尝试和扩展更多。

所以我有一个这样的数据帧:

df <- data.frame(index=sort(runif(300, -10,10)), v1=runif(300, -2,-1), v2=runif(300, 1,2))

共有1个答案

姚宪
2023-03-14

使用order()按两个索引排序,一个是重新排列的十进位,另一个是随机的。

set.seed(123)
dtf <- data.frame(round(cbind(index=sort(runif(20, -10, 10)), 
                                 v1=runif(20, 0, 5), 
                                 v2=runif(20, 5, 10)), 2))
ea <- nrow(dtf)/10

# Deciles shifted by 5
d <- rep(((1:10 + 4) %% 10) + 1, each=ea)

# Random index within decile
r <- c(replicate(10, sample(ea)))

cbind(dtf, z=dtf[order(d, r), -1])
#    index   v1   v2 z.v1 z.v2
# 12 -9.16 4.45 5.71 4.51 7.21
# 11 -9.09 3.46 7.07 4.82 5.23
# 14 -7.94 3.20 7.07 3.98 5.61
# 13 -5.08 4.97 6.84 3.45 8.99
# 15 -4.25 3.28 5.76 0.12 7.80
# 16 -3.44 3.54 5.69 2.39 6.03
# 17 -1.82 2.72 6.17 3.79 5.64
# 18 -0.93 2.97 7.33 1.08 8.77
# 19 -0.87 1.45 6.33 1.59 9.48
# 20  0.56 0.74 9.29 1.16 6.87
# 2   1.03 4.82 5.23 3.46 7.07
# 1   1.45 4.51 7.21 4.45 5.71
# 3   3.55 3.45 8.99 3.20 7.07
# 4   5.77 3.98 5.61 4.97 6.84
# 6   7.66 0.12 7.80 3.54 5.69
# 5   7.85 2.39 6.03 3.28 5.76
# 8   8.00 3.79 5.64 2.97 7.33
# 7   8.81 1.08 8.77 2.72 6.17
# 10  9.09 1.59 9.48 0.74 9.29
# 9   9.14 1.16 6.87 1.45 6.33
 类似资料:
  • 我有两个不同列数和行数的CSV文件。第一个CSV文件有M列和N行,第二个文件有H列和G行。一些列具有相同的名称。 null 另外,如果两个CSV文件有两个数据帧,并希望这样做,例如,如果我将第一个CSV加载到中,将第二个加载到中,然后希望合并到,类似于上面的示例。

  • 我在dataframe中总共有100列。我试图比较两个数据帧,并找到列名不匹配的记录。我得到了以下代码的输出,但当我运行100列的代码时,作业被中止。 我正在为SCD类型2增量进程错误查找执行此操作。 请建议任何其他方式。

  • 我正在尝试将熊猫DF转换为Spark one。测向头: 代码: 我得到了一个错误:

  • 基本上,它应该在步骤中找到指标为43且步骤=1的行,然后将该值放在新列中,在这种情况下,它将是“Gross value Added”。任何帮助都将非常感谢!

  • 我正在改装一些现有代码以使用Spark。我有多个包含不同数据集的数据帧。在转换主数据帧(或主数据集)时,我需要使用来自其他数据帧的数据来完成转换。我还有一种情况(至少在当前结构中),我需要在另一个数据帧的转换函数中创建新的数据帧。 我试图确定以下内容: 我可以在另一个数据帧的转换函数中访问数据帧吗 关于如何处理这种情况的指针将非常有帮助。

  • 我有3个数据帧。第一数据帧(例如df1)具有多行和多列。第二和第三数据帧(例如df2和df3)仅具有来自DF1的一行和列的子集。df2和df3中的列名相同。所以我要做的是将df1中的每一行与df2和DF3中的单行进行比较。如果来自df1的单元格的值与df2的单元格内容匹配,则将df1中单元格的值替换为1;如果来自df1的单元格的值与df3匹配,则将df1中单元格的值替换为2;如果df2的单元格内容