给定另一个数据集的字符串变量,如何创建一个新变量?

时间:2019-03-13 19:29:57

标签: r string

我有一个数据集 data1 ,其中包含以下信息。 L1_num是L1_str的数字版本。同样,L2_num是L2_str的数字版本。

enter image description here

我需要创建一个编码1级(L1_num)和2级(L2_num)的脚本。该脚本将用于使用具有变量Time,Bev和Where的新数据集对1级和2级进行编码。

如何自动执行此类代码?该脚本需要自动化,以便可以在具有不同变量名称和值的任何其他数据集上使用。

所需的输出

if (Time=='Morning' | Time == 'Afternoon') L1_num=1
if (Time=='Evening’)                       L1_num=2

if (L1_num == 1 & Bev == ‘Coffee’)                 L2_num=1
if (L1_num == 1 & (Bev == ‘Tea’ | Bev == ‘Water’)) L2_num=2


if (L1_num == 2 & Where== ‘Home’)                  L2_num=3
if (L1_num == 2 & Where==’Restaurant’)             L2_num=4

这是创建data1的代码。

data1 <- data.frame(L1_str=c('Time: Morning (30); Afternoon (15);', 'Time: Morning (30); Afternoon (15);', 'Time: Evening (45);', 'Time: Evening (45);' ),
                    L1_num=c(1, 1, 2, 2),
                    L2_str=c('Bev: Coffee (30);', 'Bev: Tea (20); Water (20);', 'Where: Home (15)', '   Where: Restaurant (25);'),
                    L2_num=c(1, 2, 3, 4)
)

data2 <- data.frame(Time=c('Morning', 'Afternoon', 'Evening', 'Evening'),
                    Bev=c('Coffee', 'Tea', 'Water', 'Soda'),
                    Where=c('Home', 'Home', 'Home', 'Restaurant')
)

0 个答案:

没有答案