【发布时间】:2018-01-29 02:29:04
【问题描述】:
问题
还有其他方法可以使用lapply() 粘贴数据框中每列中每个元素的列名吗?
问题
目前,我正在为每一列重新使用lapply()。
可重现的示例
# create data
df <- data.frame(
Chicago_Has = c("Lou Malnati's", "Wrigley Field", "CTA" )
, Seattle_Has = c("Piroshky Piroshky", "Safeco Field", "KCMT" )
, stringsAsFactors = FALSE
)
# paste column name into each element
# within each column
df[ "Chicago_Has" ] <- lapply( X = df[ "Chicago_Has" ]
, FUN = function(i) paste( "Chicago_Has", i, sep = " " )
)
df[ "Seattle_Has" ] <- lapply( X = df[ "Seattle_Has" ]
, FUN = function(i) paste( "Seattle_Has", i, sep = " ")
)
# examine the desired result of the data frame
df
# Chicago_Has Seattle_Has
# 1 Chicago_Has Lou Malnati's Seattle_Has Piroshky Piroshky
# 2 Chicago_Has Wrigley Field Seattle_Has Safeco Field
# 3 Chicago_Has CTA Seattle_Has KCMT
想法
目前,我认为这种方法涉及太多的复制和粘贴。如果我将colnames( df ) 存储为字符向量,我不知道如何使用该对象——同时只使用一次lapply()——来获得我想要的结果。我认为这涉及在我在FUN 中提供的函数中使用多个计数器,但我不确定如何继续。
【问题讨论】: