R:使用lapply添加新列

时间:2015-04-26 12:29:54

标签: r

我想在列表的每个数据框中添加一列,其中两列(col1和col2)的值是连接的

# create new column #
original.list <- lapply(original.list, cbind, new_column = c(""))
# add data to new column
new.list <- lapply(original.list, function (x) x$new_column = paste(x$col1, x$col2, sep = "_"))

但是,这似乎是错误的,因为结果是只包含新列的列表。

这就是我的original.list的每个数据框看起来像

col1    col2
name1   1
name2   2
name3   3

这就是我的new.list的每个数据框应该是什么样子

col1    col2    new_column
name1   1       name1_1
name2   2       name2_2
name3   3       name3_3

2 个答案:

答案 0 :(得分:5)

您的示例不可重复,但如果您想要var current_Url = ""; function makeUrl() { var base = window.location.origin; var e = document.getElementById("select"); var val = e.options[e.selectedIndex].value; if (current_Url === "") { current_Url = base + val; document.getElementById('cu').innerHTML = current_Url; //Comment out the next line on you actual site //document.location.href = current_Url; } else { current_Url += val; document.getElementById('cu').innerHTML = current_Url; //Comment out the next line on you actual site //document.location.href = current_Url; } } 而不仅仅是新列,则可能应该从函数返回x ...

x

答案 1 :(得分:-1)

我不确定您要做什么,但似乎您只是尝试从数据框中的其他两列创建新列。 lapply对此有点矫枉过正。尝试以下(假设我正确理解了问题):

new.list <- original.list
new.list$new_column <- paste0(new.list$col1, new.list$col2, sep="_")