如何使用R中的apply来分配所需的列,其余用空格填充?

时间:2018-06-14 10:36:48

标签: r

这是样本数据

df= data.frame(C = c(0, 2, 4, 7, 8), A = c(4, 2, 4, 7, 8), B = c(1, 3, 8, 3, 2), 
Region = c("US","UK","NZ","OZ","SA")),Status = c("Yes","No","Yes","No","Yes")

#   C A B Region Status
# 1 0 4 1  US     Yes
# 2 2 2 3  UK     No
# 3 4 4 8  NZ     Yes 
# 4 7 7 3  OZ     No
# 5 8 8 2  SA     Yes

我正在尝试的是只选择Region和Status列并保持空白。

selectvar <- c("Region","Status")
lapply(df[which(!names(df) %in% selectvar )],0)

我想把它作为我的最终输出:

# Region Status  C  A  B
#  US     Yes
#  UK     No
#  NZ     Yes 
#  OZ     No
#  SA     Yes

2 个答案:

答案 0 :(得分:1)

您根本不需要lapply

df[!names(df) %in% c("Region", "Status")] <- ""

完成这项工作。

答案 1 :(得分:1)

使用replace的简洁解决方案:

replace(df, 1:3, "")

<强>输出:

  C A B Region Status
1           US    Yes
2           UK     No
3           NZ    Yes
4           OZ     No
5           SA    Yes