是的,以前有人问过这个问题,但我找不到可以为这个问题提供简单、干净的答案的线程。
我有下面的示例数据 - 我有两列,col1 是当前地址,col2 是我被告知比当前地址“更好”的地址。我需要看看第二列比第一列“更好”多少。大多数情况下,第二个更好 b/c 它包含第一个缺少的次要信息,例如公寓号。
test <- as.data.frame(matrix(c(
"742 Evergreen Terrace" , "742 Evergreen Terrace Apt 3" ,
"31 Spooner Street #42" , "31 Spooner Street",
"129 W 81st Street" , "129 W 81st Street Apt 5A" ,
"245 E 73rd Street", "245 E 73rd Street Apt 6") , ncol=2, byrow=TRUE,
dimnames=list(NULL, c("old_addr" , "new_addr"))) ,stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
我在这里找到了一个接近我想要的答案: 一列中的模糊匹配行与下一列中的同一行
我需要创建第三列,它是一个简单的 1/0 变量,如果近似匹配则为 == 1,否则为 0。我需要能够为近似匹配指定阈值。
对于我的第一个示例 - 742 Evergreen Terrace 与 742 Evergreen Terrace Apt 3,长度相差 6。我需要能够指定六、八或其他的长度差异。
我查看了 …
我看了看,答案要么对我不起作用,要么太复杂和不必要了.
我有数据,它可以是任何数据,这里是一个例子
chickens <- read.table(textConnection("
feathers beaks
2 3
6 4
1 5
2 4
4 5
10 11
9 8
12 11
7 9
1 4
5 9
"), header = TRUE)
Run Code Online (Sandbox Code Playgroud)
我需要非常简单地按降序对第1列的数据进行排序.这很简单,但我发现下面有两件事情都不起作用,并给我一个错误,上面写着:
"顺序错误(var):找不到对象'var'.
他们是:
chickens <- chickens[order(-feathers),]
Run Code Online (Sandbox Code Playgroud)
和
chickens <- chickens[sort(-feathers),]
Run Code Online (Sandbox Code Playgroud)
我不确定我在做什么,如果我把df名字放在前面,我可以让它工作varname,但是如果我在前面加一个减号varname来暗示降序,那就行不通了.
我想尽可能简单地做到这一点,即没有布尔逻辑变量,没有这样的.一个类似于SPSS的
SORT BY varname (D)
答案可能就在我面前,我为基本问题道歉.
谢谢!
我有下面的数据
eg_data <- data.frame(
period = c(sample( c("1 + 2"), 1000, replace = TRUE)),
max_sales = c(sample( c(1:10), 1000, replace = TRUE, prob =
c(.05, .10, .15, .25, .25, .10, .05, .02, .02, .01)))
Run Code Online (Sandbox Code Playgroud)
我想绘制scatter( jitter,实际上) 绘图并在沿 y 轴的不同点添加水平线。我希望能够自定义添加行的百分位数,但就目前而言,R 的汇总函数之类的东西可以正常工作。
summary(eg_data$max_sales)
Run Code Online (Sandbox Code Playgroud)
我有下面的抖动图代码。它运行并生成图形,但我不断收到错误消息:
每组仅包含一个观察值。你需要调整群体审美吗?
jitter <- (
(ggplot(data = eg_data, aes(x=period, y=max_sales, group = 1)) +
geom_jitter(stat = "identity", width = .15, color = "blue", alpha = .4)) +
scale_y_continuous(breaks= seq(0,12, by=1)) +
geom_line(stat = 'summary', fun.y = …Run Code Online (Sandbox Code Playgroud) 我下面有一个示例数据框。
eg_data <- data.frame(
time = c("1", "1", "2","2"),
type = c("long", "short","long", "short"),
size=c(200,50, 500, 150 ))
Run Code Online (Sandbox Code Playgroud)
我需要创建行来汇总每个时间段的大小值。我已经查看了aggregate 和by 的组合,但我无法让它正常工作。
我尝试过的一个例子:
rbind(eg_data, data.frame(time="1 + 2", type="long", size=by(eg_data$size,
eg_data$time=="long", sum)))
Run Code Online (Sandbox Code Playgroud)
我希望最终数据框的示例如下:
eg_data <- data.frame(
time = c("1", "1", "2","2", "1 + 2", "1 + 2"),
type = c("long", "short","long", "short", "long", "short"),
size=c(200, 50, 500, 150, 700, 200))
Run Code Online (Sandbox Code Playgroud)
任何帮助都是值得赞赏的,带有基本 R 的解决方案将非常感激。