【发布时间】:2016-10-18 11:48:21
【问题描述】:
,我需要帮助将 python 代码转换为 R 代码。
我有一个数据框 df,其中包含 IndicatorOfDefault 列,我也想生成一个名为 indvalues 的列。
例子:
row number IndicatorOfDefault indvalues
823602 P 0
823603 P 0
823604 N1,N13, 8
823605 N1, 1
823606 P 0
823607 N1,N2,N3,N9,N10, 13
823608 P 0
我要转换的代码如下:
df['indicators'] = df['IndicatorOfDefault'].str.split(',')
Nvalues = {'' : -1, 'P' : 0, 'N1' : 1, 'N2' : 2, 'N11' : 3, 'N12' : 4, 'N3' : 5, 'N4' : 6,
'N6' : 7, 'N10' : 8, 'N13' : 9, 'N5' : 10, 'N7' : 11, 'N8': 12, 'N9' : 13}
df['indvalues'] = df['indicators'].apply(lambda x: max([Nvalues.get(y,y) for y in x ]))
我想在 R 中执行相同的代码,但我不知道如何在 R 中编写它。
谁能帮帮我?
提前致谢
为什么这个问题跑题了?我不明白出了什么问题......我是这个网站的新手,所以如果有人能解释为什么这个特定问题不属于这里,我将不胜感激?我已经阅读了帮助中心的内容,但我仍然不知道哪里出了问题。
我设法以不同的方式解决了我的问题。我得到了我想要的结果 - 最重要的指标(它不需要是必要的数字)。
df$ind <- "P"
for(i in c(1, 2, 11, 12, 3, 4, 6, 10, 13, 5, 7, 8, 9)){
df <- transform(df, ind = ifelse(grepl(as.character(paste0("N",i,",")),IndicatorOfDefault),as.character(paste0("N",i)),ind))
}
例子:
row number IndicatorOfDefault ind
823602 P P
823603 P P
823604 N1,N13, N13
823605 N1, N1
823606 P P
823607 N1,N2,N3,N9,N10, N9
823608 P P
【问题讨论】:
-
取消标记 python,
dput你的 r 数据框并粘贴到问题中,描述你想要做什么,并添加你的尝试 -
@rawr:dput 你的 r 数据框是什么意思?
-
我拥有的数据框非常大(61 列和 823610 行),这就是为什么我发布了一个小示例,在 IndicatorOfDefault 和 indvalues 列中显示第 823602 到 823608 行(我想生成)。
-
dput(df[823602:823608, c('IndicatorOfDefault', 'indvalues')]) -
这个问题是话题,不应该被搁置。 @rawr:Jasmina 有一个 Python 数据框,而不是 R(所以没有
dput())。她想将此 Python 代码转换为等效的 R。