r - 根据另一列将某些值分配给 data.table 中的列
问题描述
我有一个data.table
( dataframe)
。我可以根据另一列(基于如下图所示的列)创建一个具有某些值的新列吗?
例如,我可以A
使用 values =创建一个名为 的新列c (1.2,5.6,10.3,20.4)
,并使其与S4,S9,S5,S10
column对应stimulus
吗?
解决方案
一个更简单的选择是转换为factor
指定levels
为unique
列的元素并强制转换为整数as.integer
df1$A <- as.integer(factor(df1$stimulus, levels = unique(df1$stimulus)))
或match
使用unique
值
df1$A <- with(df1, match(stimulus, unique(stimulus)))
-更新
如果它需要自定义值,一个选项也可以labels
指定levels
df1$A <- with(df, as.numeric(as.character(factor(stimulus,
levels = c("S4", "S9", "S5", "S10"), c("1.1", "2.2", "3.2" , "5.8")))))
或者更好的选择可能是与键/值数据集进行连接/合并
keydat <- data.frame(stimulus = c("S4", "S9", "S5", "S10"),
A = c(1.1, 2.2, 3.2, 5.8))
df2 <- merge(df1, keydat, all.x = TRUE)
推荐阅读
- react-native - 如何在 React Native(iOS 和 Android)中实现付费移除广告
- angularjs - 在测试中解决 CSV Stringify 承诺或在调用函数时结束测试?
- node.js - 导出函数并从不同的文件中调用它
- azure - 使用 sap .net 连接器将逻辑应用程序连接到 sap hana 服务器时出错
- node.js - Node JS 手动处理 HTTP 重定向并保留 cookie
- css - 如果输入已经填写,VueJS会更改输入的边框颜色
- python - 用python从左到右解码二维码
- php - 让本地 Symfony 2.8 应用程序像在 prod 环境中一样运行
- java - InputStream 不从 JAR 中读取某些文件
- r - 求一个变量被另一个变量子集化的平均值