我有一个数据集 data1 ,其中包含以下信息。 L1_num是L1_str的数字版本。同样,L2_num是L2_str的数字版本。
我需要创建一个编码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')
)