【发布时间】:2017-02-24 06:37:30
【问题描述】:
我有数据框,我想创建一些新变量并更新旧变量,但有时变量的长度太多,我不知道如何放入循环或使用 mapply 或 lapply。
df <- data.frame(x=c("A","A","A,S"),
y=c("12","12,4","10"),
z=c("String,Text","Avoid","Use"))
> df
x y z
1 A 12 String,Text
2 A 12,4 Avoid
3 A,S 10 Use
我创建了一些新变量:
df$x_sub <- substring(sub("^[^,]*", "",df$x),2)
df$x <- sub("\\,.*", "",df$x)
df$y_sub <- substring(sub("^[^,]*", "",df$y),2)
df$y <- sub("\\,.*", "",df$y)
df$z_sub <- substring(sub("^[^,]*", "",df$z),2)
df$z <- sub("\\,.*", "",df$z)
输出是正确的,但是如果我有 10 个变量,我需要做些什么来节省时间
x y z x_sub y_sub z_sub
1 A 12 String Text
2 A 12 Avoid 4
3 A 10 Use S
【问题讨论】: