基于现有变量在R中创建新变量
我有一个关于R的新问题——我正在教自己如何在心理学学士学位论文中使用它,所以如果我的问题真的很幼稚,请容忍我 现在,我正试图在现有变量的基础上创建一个新变量。现有的有4种不同的表达式:T1、T2、T3和T4。它们可能看起来像这样:基于现有变量在R中创建新变量,r,R,我有一个关于R的新问题——我正在教自己如何在心理学学士学位论文中使用它,所以如果我的问题真的很幼稚,请容忍我 现在,我正试图在现有变量的基础上创建一个新变量。现有的有4种不同的表达式:T1、T2、T3和T4。它们可能看起来像这样: subject scenario 1 T1 2 T3 3 T3 4 T2 5 T2 6 T4 subject
subject scenario
1 T1
2 T3
3 T3
4 T2
5 T2
6 T4
subject scenario personal force
1 T1 personal
2 T3 impersonal
3 T3 impersonal
4 T2 personal
5 T2 personal
6 T4 impersonal
我试图创建的新变量应该给出以下值:对于T1
和T2
来说,新变量应该是personal
,对于T3
和T4
来说,它应该是非个人的
。
因此,输出数据应如下所示:
subject scenario
1 T1
2 T3
3 T3
4 T2
5 T2
6 T4
subject scenario personal force
1 T1 personal
2 T3 impersonal
3 T3 impersonal
4 T2 personal
5 T2 personal
6 T4 impersonal
我可以创建什么代码来执行此操作?
任何帮助都将不胜感激。谢谢!:) 一个选项可以是:
#Code
df$NewVar <- ifelse(df$scenario %in% c('T1','T2'),'personal','impersonal')
两种情况下的输出:
df
subject scenario NewVar
1 1 T1 personal
2 2 T3 impersonal
3 3 T3 impersonal
4 4 T2 personal
5 5 T2 personal
6 6 T4 impersonal
也可以使用
dplyr
和mutate()
并传递ifelse()
来完成,但您必须安装该软件包并了解其功能。由于您是R
的初学者,您可以先从base R
开始,然后升级到dplyr
样式。另一种方法是使用逻辑子集创建新列
df$personal_force <- c('impersonal', 'personal')[df$scenario %in% c('T1', 'T2') + 1]
df
# subject scenario personal_force
#1 1 T1 personal
#2 2 T3 impersonal
#3 3 T3 impersonal
#4 4 T2 personal
#5 5 T2 personal
#6 6 T4 impersonal
df$personal\u force TRY:pd%>%mutate(personal\u force=ifelse(场景%in%c('T1','T2'),'personal','impersonal'))其中'pd'是您的数据框架谢谢!你的第一次推荐很有魅力。@carolinships太棒了!继续学习掌握R
:)如果你有任何与某个项目相关的陷阱,请告诉我。我经常教授定制的R编程课程来解决关键问题。如果您在任何时候感兴趣,请告诉我:)