【问题标题】:How to replace values of a subset of columns [duplicate]如何替换列子集的值[重复]
【发布时间】:2020-07-23 05:29:44
【问题描述】:

我有以下数据框:

class       SyntacticDiversityTimeLine_T1   SyntacticDiversityTimeLine_T2   SyntacticDiversityTimeLine_T3   SyntacticDiversityTimeLine_T4   SyntacticDiversityTimeLine_T5   SyntacticDiversityTimeLine_T6
FieldWriter 0.022180734                     0.037161135                     0.0333365818    0.0293807746    0.0273657335    0.0218952546
ClassWriter 0.0220335244                    0.0285103085    0.0345992136    0.0323371822    0.0303270617    0.0305631595
ClassReader 0.0287826545                    0.0287826545    0.0287826545    0.0310223776    0.0337064784    0.0322547359
Memory      0.0131923306                    0.0131923306    0.0131923306    0.0173490644    0.0216174768    0.0258896409
Evaluation  0.0128698165                    0.0128698165    0.0145027452    0.0208119061    0.0285975251    0.0318768479
ICSSearch   0.0610376193                    0.0610642137    0.0577870861    0.0497895971    0.0426232686    0.0350948706
ModelReader 0.0295225239                    0.0363729355    0.0356058584    0.0350546489    0.0343149581    0.0334304414

我想将SyntacticDiversityTimeLine_T1:SyntacticDiversityTimeLine_T6 列中的值替换为另一个数据帧中的值。请注意,实际上我有来自SyntacticDiversityTimeLine_T1:SyntacticDiversityTimeLine_T70的数据

我尝试了类似的方法,但没有成功:

df[df$SyntacticDiversityTimeLine_T1:df$SyntacticDiversityTimeLine_T70] <- otherdf[otherdf$SyntacticDiversityTimeLine_T1:otherdf$SyntacticDiversityTimeLine_T70]

我该怎么做?

【问题讨论】:

  • 对于那些投反对票的人,我想知道这是为什么?我不是 R 语言专家,我遇到了需要专家帮助的问题。好像有什么问题??????
  • 反对票之一是我的。为什么?从在 Stackoverflow 上工作了很长时间的人那里听到这个问题,我有点惊讶。这不是关于 R,而是关于提问的方式。请考虑阅读这些链接:idownvotedbecau.se/nomcveidownvotedbecau.se/noresearch。我发现应该以尽可能少的时间为其他人花费时间的方式提出问题,这是一个很好的总体思路/指导方针。我们要求尝试复制您的数据并没有显示出这样的努力,我认为这值得一票
  • 我不确定为什么人们会否决您的问题,但我怀疑他们认为以前有人问过这个问题。希望这会有所帮助。

标签: r


【解决方案1】:

语法似乎不对。

样本数据:

df1 <- data.frame(
  v1 = c(1,2,3,4,5),
  v2 = c(1,3,5,7,9),
  v3 = c(1,4,7,11,14)
)

df2 <- data.frame(
  x1 = c(0.5,2.5,3.5,4.5,5.5),
  x2 = c(1.5,3.5,5.5,7.5,9.5),
  x3 = c(1.5,4.5,7.5,11.5,14.5)
)

要通过df2中的值覆盖df1中的值,您需要对列进行子集化,这是使用方括号内的逗号完成的:

df1[,2:3] <- df2[,2:3]

结果:

df1
  v1  v2   v3
1  1 1.5  1.5
2  2 3.5  4.5
3  3 5.5  7.5
4  4 7.5 11.5
5  5 9.5 14.5

【讨论】:

    猜你喜欢
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 2015-10-15
    相关资源
    最近更新 更多