使用R-在其他列的基础上有条件地交换列中的值



(1(我有一个名为COPY的数据帧,看起来像这个

COPY <- data.frame (year  = c(values_here),
Ceremony = c(values_here),
Award = c(values_here),
Winner = c(values_here),
Name = c(values_here),
Film = c(values_here),
)

(2( 某些行的名称和胶片列中的一些条目混淆了

(3( 我用这个代码在错误的地方创建了一个所有名字的向量。

COPY$Film[COPY['Award']=='Director' & COPY['Year']>1930]->name

条目中的奖项=导演和年份大于1930年名称和电影栏混合

(4( 现在,我想根据我的新名称对象所陈述的条件来替换COPY$Name。我试过这个代码。

replace(COPY$Name,COPY$Award =='Director' && COPY$Year>1930,name)

所以基本上,我试图翻转"姓名"one_answers"电影"列,其中"奖项"列=="导演"one_answers"年份"列大于1930。

缺少数据,请尝试以下操作:

COPY <- data.frame (year  = 2000:2002,
Ceremony = NA,
Award = c("A", "Director", "B"),
Winner = NA,
Name = c("A","B","C"),
Film = c("1","2","3")
)
swap <- COPY$Award == "Director"
COPY <- transform(COPY, Name = ifelse(swap, Film, Name), Film = ifelse(swap, Name, Film))
COPY
#   year Ceremony    Award Winner Name Film
# 1 2000       NA        A     NA    A    1
# 2 2001       NA Director     NA    2    B
# 3 2002       NA        B     NA    C    3

最新更新