R - 有条件地替换数据表中的行[重复]

问题描述 投票:0回答:1

我正在尝试有条件地替换数据表中的行值。 请考虑以下数据集摘录:

library(data.table)
txt1 <- "Date Location Measurement Scenario         Var Month    Decade
  1960-01-01  4100103        23.3  CRU3.2 Temperature   Jan 1960-1990
  1960-02-01  4100103        24.1  CRU3.2 Temperature   Feb 1960-1990
  1960-03-01  4100103        23.6  CRU3.2 Temperature   Mar 1960-1990
  1960-04-01  4100103        20.4  CRU3.2 Temperature   Apr 1960-1990
  1960-05-01  4100103        16.2  CRU3.2 Temperature   May 1960-1990
  1960-06-01  4100103        16.5  CRU3.2 Temperature   Jun 1960-1990"

dt <- data.table(read.table(textConnection(txt1), header=TRUE))

这只是一个示例。我的实际数据大约有 250 万行。

如您所见,我有多个位置的温度测量值。 然而,位置是用地理编码而不是名称来标识的,这不太可读。

因此,我有另一个与地理编码和城市名称相关的数据集:

txt2 <- "GEOCODIG_M, Name
4100103,              Abatiá
4100202,        Adrianópolis
4100301,       Agudos do Sul
4100400, Almirante Tamandaré
4100459,  Altamira do Paraná
4100509,             Altônia"

df <- read.csv(textConnection(txt2),sep=',', header=TRUE)

所以,我需要做的是将

Location
中的字段
dt
GEOCODIG_M
中的
df
进行比较,并用名称替换地理编码。

本案的预期结果是:

        Date    Name Measurement Scenario         Var Month    Decade
  1960-01-01  Abatiá        23.3  CRU3.2 Temperature   Jan 1960-1990
  1960-02-01  Abatiá        24.1  CRU3.2 Temperature   Feb 1960-1990
  1960-03-01  Abatiá        23.6  CRU3.2 Temperature   Mar 1960-1990
  1960-04-01  Abatiá        20.4  CRU3.2 Temperature   Apr 1960-1990
  1960-05-01  Abatiá        16.2  CRU3.2 Temperature   May 1960-1990
  1960-06-01  Abatiá        16.5  CRU3.2 Temperature   Jun 1960-1990

使用数据表执行此操作的最佳方法是什么?

r replace data.table rows
1个回答
1
投票

n byeattm b=cilgI 索西亚特 $snteexothC aGnsdId tmb (ee n
Ci t,aeGl

h T   ot 2tmrYx Mgk he i2em y<'=uf'.Op, to.t1t mO x dUg.Mtlisract-t ]o, _tttco t-Lw$ w N rny2) x D oo$G
l e ".Roya a aa Ehaert 'ehatuel E,2wOGv o mu ya1xer$eia iu tgxavxtw oOn aa[nri.megt"'c od xctoi,ext,1

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.