【发布时间】:2021-06-11 16:24:17
【问题描述】:
数据如下所示:
Language Files LOC
1 C++ 4009 0
2 Java 0 876
3 Python 35 200
我想添加第四列,如下所示。如果 Files/LOC 中有非零值,则新列将包含该值和列名。例如
Language Files LOC Final
1 C++ 4009 0 C++: It's Files:4009
2 Java 0 876 Java: It's LOC:876
3 Python 35 200 Python: It's Files:35, LOC:200
4 R 0 0 R: Nothing here.
这几乎是答案,但在 dim() 4701x158 的数据帧上非常慢:
colList <- list('Files', 'LOC')
for (i in 1:nrow(df)) {
row <- df[i,]
for (j in 1:length(colList)) {
type <- colList[[j]][1]
if (row[[type]] > 0) {
df[i,][['Final']] <- paste(row[['Final']], '<br>', type, ': ', row[[type]], sep = '')
}
}
}
【问题讨论】:
标签: r dataframe concatenation